Linux基础学习(二)【ls、cp、rm、mv命令详解】

  本文介绍了在Linux下查看文件与目录(ls)、复制文件或目录(cp)、移除文件或目录(rm)、移动文件与目录,或更名(mv)、取得路径的文件名与目录名称等命令。
  
参考《鸟哥的Linux私房菜》基础学习篇(第三版)

查看文件与目录:ls

ls [-aAdfFhilnrRSt] 目录名称
ls [–color={never,auto,always}] 目录名称
ls [–full-time] 目录名称

参数:

-a:全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来(常用)
-l:列出长数据串,包含文件的属性与权限等数据(常用)
PS:因为ls最常被用到的功能是 –l的参数,所以很多distribution在默认的情况中将 ll设置成为 ls –l的意思。
-d:仅列出目录本身,而不是列出目录内的文件数据(常用)
-A:列出全部的文件(连同隐藏文件,但不包括 . 与 .. 这两个目录)
-f:直接列出结果,而不进行排序(ls默认会以文件名排序)
-F:根据文件、目录等信息给予附加数据结构,例如:
*:代表可执行文件; /:代表目录; =:代表socket文件; |:代表FIFO文件
-h:将文件容量以人类较易读的方式(例如GB,KB等)列出
-i:列出inode号码
-n:列出UID与GID,而非用户与用户组的名称
-r:将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小
-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S:以文件容量大小排序,而不是文件名排序
-t:依时间排序,而不是用文件名
–color=never:不要依据文件特性给予颜色显示
–color=always:显示颜色
–color=auto:让系统自行依据设置来判断是否给予颜色
–full-time:以完整时间模式(包括年、月、日、时、分)输出
–time={atime,ctime}:输出访问时间或改变权限属性时间(ctime)而非内容更改时间(modification time)

范例一:将主文件夹下的所有文件列出来(含属性与隐藏文件)

ls –al ~

范例二:承上体,不显示颜色,但在文件名末显示出该文件名代表的类型(type)

Ls –alf –color=never ~

范例三:完整呈现文件的修改时间

ls –al –full-time ~

范例四:呈现以bashrc_slink为开头的文件

ls –l bashrc_slink*

复制文件或目录:cp

cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [potions] source1 source2 source3 ···· directory

参数:

-a:相当于-pdr(常用);
-r:递归持续复制,用于目录的复制行为(常用);
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-i:若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用);
-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再次尝试一次;
-l:进行硬连接(hard link)的文件创建,而非复制文件本身;
-s:复制成为符号链接文件(symbolic link),即“快捷方式”文件;
-u:若destination比source旧才更新destination;
#如果源文件有两个以上,则最后一个目的文件一定要是“目录”才行。
#对于复制(cp)这个命令,不同身份者执行这个命令会有不同的结果产生,尤其是-a、-p两个参数,区别较大。

范例一:用root身份将主文件夹下的.bashrc复制到/tmp下,并更名为bashrc

cp ~/.bashrc /tmp/bashrc
cp –i ~/.bashrc /tmp/bashrc
#重复做两次操作,由于/tmp下面已经存在bashrc了,加上-i参数后,则在覆盖前会询问#用户是否确定,可以按下n或者y来二次确认。

范例二:切换目录到/tmp,并将/var/log/wtmp复制到/tmp

cd /tmp
cp /var/log/wtmp .
#想要复制到当前目录,最后的“.”不能忘。
#在不加任何参数的情况下,文件的某些属性/权限会改变。
cp –a /var/log/wtmp wtmp_2
#加-a整个数据特性不会改变。
#在默认的条件中,cp的源文件与目的文件的权限是不同的,目的文件的所有者通常会是命#令操作者本身。

范例三:复制/etc/这个目录下的所有内容到/tmp下面

cp /etc/ /tmp(这样是不行的,目录无法直接复制,需加上-r的参数)
cp –r /etc/ /tmp
# -r可以复制目录,但是文件与目录的权限可能会被改变
#可以利用“cp –a /etc /tmp”来执行命令。尤其是在备份的情况下。

cp -s bashrc bashrc_slink
cp –l bashrc bashrc_hlink
#使用-s及-l都会创建所谓的链接文件(link file),但是这两种连接文件却不一样。-l是#硬连接(hard link),-s则是软连接(symbolic link),简单来说,bashrc——slink是#一个“快捷方式”。

范例五:若~/.bashrc比/tmp/bashrc新才复制过来

cp –u ~/.bashrc /tmp/bashrc
# -u的特性是在目标文件与源文件有差异时才会复制
#所以常被用于“备份”的工作当中。

范例六:将范例四生成的bashrc_slink复制成bashrc_slink_1与bashrc_slink_2

cp bashrc_slink bashrc_slink_1
#复制连接文件的实际文件。
cp –d bashrc_slink bashrc_slink_2
#复制的连接文件的属性。

范例七:将主文件夹的.bashrc及.bash_history复制到/tmp下面

cp ~/.bashrc ~/.bashrc_history /tmp
#可以将多个数据一次复制到同一个目录去,最后面一定是目录。

移除文件或目录:rm

rm [-fir] 文件或目录

参数:

-f:就是force的意思,忽略不存在的文件,不会出现警告信息;
-i:互动模式,在删除前会询问用户是否操作;
-r:递归删除。最常用在目录的删除。

范例一:将刚才在cp的范例中创建的bashrc删除

rm -i bashrc

范例二:通过通配符*的帮忙,将/tmp下面开头为bashrc的文件名全部删除

rm –I bashrc*
#那个星号“*”,代表的是0到无穷多个任意字符。

范例三:将cp范例中所创建的/tmp/etc/这个目录删除

rm –r /tmp/etc
#因为身份是root,默认加入了-i参数,所以要一直按y才会删除,可以按下[Ctrl]-c结束rm的工作。
#如果确定要删除此目录而不要询问,可以这样:
\rm –r /tmp/etc

范例四:删除一个带有-开头的文件

touch ./-aaa-
#touch可以创建空文件
#使用rm –aaa- 会报错
rm ./-aaa-或rm – -aaa-(正确命令)

移动文件与目录,或更名:mv

mv [-fiu] source desination
mv [options] source1 source2 source3 ··· directory

参数:

-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i:若目标文件(destination)已经存在时,就会询问是否覆盖;
-u:若destination已经存在,且source比较新,才会更新(update)。

范例一:复制一个文件,创建一个目录,将文件移动到目录中

cp ~/.bashrc bashrc
mkdir mvtest
mv bashrc mvtest

范例二:将刚才的目录重命名为mvtest2

mv mvtest mvtest2

范例三:再创建两个文件,再全部移动到/tmp/mvtest2中

cp ~/.bashrc bashrc1
cp ~/.bashrc bashrc2
mv bashrc1 bashrc2 mvtest2
#如果有多个source或directory,则最后一个目标文件一定是“目录”。

取得路径的文件名与目录名称

取得文件名:basename 路径
取得目录名:dirname 路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值