Linux基础文件管理命令之rm,mv,cp,touch
在linux系统下,一切皆文件,就连光盘也看作文件,要使用光盘首先要先建立一个目录,然后通过挂载来操作这个光盘,就连鼠标,键盘都是被看作文件。所以学习文件的相关操作命令是很重要的。
rm命令
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件保持不变。
注:rm是一个危险的命令,使用的时候要特别小心,尤其对于新手,否则整个系统就会毁在这个命令,比如以root身份在根目录下执行rm * rf对linux系统而言会是致命的。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
1)命令格式
rm [选项] FILENAME
2)命令功能
删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。
3)命令参数
-f:强制删除;忽略不存在的文件,不给提示。
-i:进行交互式删除,即在删除时会提示你是否真的需要删除
默认是没有提示的,之所以有提示是因为系统默认使用了命令别名一般只有root用户有普通用户不具备这项功能,也是系统的安全措施,具体的可以通过alias命令查看(如果命令使用了命令别名可以通过‘\‘取消命令别名,不含引号)
-r:指示rm将参数中列出的全部目录及其子目录均递归的删除
-v:显示命令执行的过程
4)常用范例
例一:删除/tmp目录下的test的目录
[root@localhost tmp]# mkdir test [root@localhost tmp]# rm test rm: cannot remove directory `test‘: Is a directory #默认不可以删除目录 [root@localhost tmp]# ls gconfd-root mapping-root test [root@localhost tmp]# rm -r test rm: remove directory `test‘? y [root@localhost tmp]# ls gconfd-root mapping-root
例二:删除/tmp目录下的mnt子目录及其子目录,并且不需要一一确认
[root@localhost tmp]# tree mnt/ mnt/ |-- m | `-- x `-- y 3 directories, 0 files [root@localhost tmp]# rm -rf mnt [root@localhost tmp]# ls gconfd-root mapping-root
mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名
1)命令格式:
mv [选项] 源文件或目录 目标文件或目录
2)命令功能:
视mv命令中的第二个参数类型的不同(是目标文件还是目标目录),当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除。
3)命令参数:
-b:若需要覆盖文件,则覆盖前先行备份
-f:强制复制,如果目标文件已经存在,不会询问而直接覆盖
-i:若文件已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且source比较新,才会更新
-t:将所有参数指定的源文件或目录移动至指定目录
4)常用范例:
例一:将test.txt重命名为test.log
[root@localhost tmp]# ls gconfd-root mapping-root test.txt [root@localhost tmp]# mv test.txt log.txt [root@localhost tmp]# ls gconfd-root log.txt mapping-root
例二:将a.txt,b.txt,c.txt文件移动至/tmp/txt目录中去
[root@localhost /]# mv -t /tmp/txt/ a.txt b.txt c.txt [root@localhost /]# ls /tmp/txt/ a.txt b.txt c.txt
例三:文件被覆盖钱做简单备份
[root@localhost txt]# cat a.txt 1234567890 [root@localhost txt]# cat b.txt abcdefghi [root@localhost txt]# mv -b a.txt b.txt mv: overwrite `b.txt‘? y [root@localhost txt]# ls -l total 20 -rw-r--r-- 1 root root 11 Aug 4 14:57 b.txt -rw-r--r-- 1 root root 10 Aug 4 14:57 b.txt~ -rw-r--r-- 1 root root 0 Aug 4 14:45 c.txt [root@localhost txt]# cat b.txt 1234567890 [root@localhost txt]# cat b.txt~ abcdefghi
5)扩展:
-b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。
--backup该选项指定如果目标文件存在时的动作,共有四种备份策略:
1.CONTROL=none或off : 不备份。
2.CONTROL=numbered或t:数字编号的备份
3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:
执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
cp命令
cp命令用来复制文件或者目录,是linux系统中最常用的命令之一。
1)命令格式
cp [选项] 源文件或目录 目标文件或目录
2)命令功能
将源文件复制到目标文件,或将多个源文件复制至目标目录。
3)命令参数
-i:覆盖前询问
-r:复制目录及目录内的所有项目
-f:覆盖已经存在的文件而不提示
-a:归档复制,常用于备份
-p:源目录或文件的属性全部保留
-v:显示命令执行的过程
4)常用范例
例一:将多个文件复制到同一目录下
[root@localhost txt]# cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/ -v `/etc/passwd‘ -> `/tmp/passwd‘ `/etc/inittab‘ -> `/tmp/inittab‘ `/etc/rc.d/rc.sysinit‘ -> `/tmp/rc.sysinit
例二:将test.rb 复制到test目录,并且保留原文件的属性
-rw-r--r-- 1 root root 0 Aug 4 15:33 test.rb drwxr-xr-x 2 root root 4096 Aug 4 14:59 txt [root@localhost tmp]# cp -p test.rb test [root@localhost tmp]# ls -l test total 4 -rw-r--r-- 1 root root 0 Aug 4 15:33 test.rb
touch命令
touch命令不常用,一般在使用make的时候可能会用到,用来修改文件的时间戳,或者新建一个不存在的文件。
1)命令格式
touch [选项] FILENAME
2)命令功能
将文件的访问时间和修改时间改为当前时间。
不存在的文件将会被创建为空文件,除非使用-c
3)命令参数
-a:只更改访问时间
-c:不创建任何文件
-m:只更改修改时间
-r:指定某文件的时间属性而非当前时间
-t:使用[[CC]YY]MMDDhhmm[.ss]格式的时间而非当前时间
4)常用范例
例一:将a.txt的时间改为当前时间,文件不存在则建之
[root@localhost txt]# touch a.txt [root@localhost txt]# ll total 24 -rw-r--r-- 1 root root 0 Aug 4 15:50 a.txt -rw-r--r-- 1 root root 11 Aug 4 14:57 b.txt -rw-r--r-- 1 root root 10 Aug 4 14:57 b.txt~ -rw-r--r-- 1 root root 0 Aug 4 14:45 c.txt
例二:将c.txt的时间改为8月1号1点零1分
-rw-r--r-- 1 root root 0 Aug 4 14:45 c.txt [root@localhost txt]# touch -ct 08010101 c.txt [root@localhost txt]# ll total 24 -rw-r--r-- 1 root root 0 Aug 4 15:50 a.txt -rw-r--r-- 1 root root 11 Aug 4 14:57 b.txt -rw-r--r-- 1 root root 10 Aug 4 14:57 b.txt~ -rw-r--r-- 1 root root 0 Aug 1 01:01 c.txt
例三:将c.txt的时间改为和b.txt的一样
-rw-r--r-- 1 root root 11 Aug 4 14:57 b.txt -rw-r--r-- 1 root root 10 Aug 4 14:57 b.txt~ -rw-r--r-- 1 root root 0 Aug 1 01:01 c.txt [root@localhost txt]# touch -r b.txt c.txt [root@localhost txt]# ll total 24 -rw-r--r-- 1 root root 0 Aug 4 15:50 a.txt -rw-r--r-- 1 root root 11 Aug 4 14:57 b.txt -rw-r--r-- 1 root root 10 Aug 4 14:57 b.txt~ -rw-r--r-- 1 root root 0 Aug 4 14:57 c.txt
本文出自 “小僧” 博客,请务必保留此出处http://xseng.blog.51cto.com/2513398/1535569
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。