linux复制.删除.移动文件的命令:cp.rm.mv

12-18

cp命令将源文件或目录复制到目标文件或目录中。如果源文件是普通文件,则该命令把它复制到指定的目标文件中;如果是目录,就需要使用”-r”选项,将整个目录下所有的文件和子目录都复制到目标位置。

一般格式:cp [选项] 源文件或目录 目标文件或目录

选项:

-a 该选项通常在复制目录时使用。它递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接和文件属性不变。它等效于-dpR

-d 复制时保留文件链接。

-f 覆盖己经存在的目标文件,并且不给出提示。

-i与-f选项不同,在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。这是交互式复制。

-p 除复制源文件的内容外,还将其修改时间和存取权限也复制到新文件中。

-R,-r 递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置。

-l 不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出。

注意:cp 命令复制一个文件,而原文件保持不变!

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点( . )或点点( .. )的形式。例如,下面的命令将指定文件复制到当前目录下:

# cp ../mary/homework/assign .

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

示例:

将文件file复制到目录/usr/men/tmp下,并改名为file1

# cp file /usr/men/tmp/file1

将目录/usr/men 下的所有文件及其子目录复制到目录/usr/zh中

# cp -r /usr/men /usr/zh

将目录/root/web/ 下的所有文件及其子目录复制到目录 /www/web中,注意此代码只是复制文件,并不会将web文件夹也复制过去

# cp -r /root/web/* /www/web

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中

#cp -i /usr/men m*.c /usr/zh

rm命令,该命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

一般格式:rm [选项] 文件列表

选项:

-d 删除目录,不管它是否为空(仅超级用户才可使用)。

-f 忽略不存在的文件,并且不给出提示信息。

-r 递归地删除指定目录及其下属的各级子目录和相应的文件。

-i 交互式地删除文件。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

示例:

交互式删除当前目录下的文件test和example:

# rm -i test example

Remove test ?n(不删除文件test)

Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录:

# rm -r *

应注意,这样做是非常危险的!

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

1.如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。

2.如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

一般格式:mv [选项] source target

选项:

-i 交互式操作。如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

-f与”-i”相反,它禁止交互式操作。在覆盖己有的目标文件时,不给任何提示。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

示例:

将文件ex3改名为new1:

# mv ex3 new1

将目录/usr/men中的所有文件移到当前目录(用”.”表示)中:

# mv/usr/men/* .