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

Linux基础文件管理命令之rm,mv,cp,touch,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。