2.26 复制文件
cp
复制文件是计算机用户经常做的工作之一,更不用说OS了。Linux shell使用的各命令中,最棒的命令之一就是cp
,它用于复制文件和目录。使用cp
命令最简单的方法就是输入命令,后面再输入你想复制的文件,然后是被复制文件的新名称。可以把该命令的结构看作是“cp
正在从哪复制的文件 正在复制到哪的文件”。这种关系的另一种常见表达方式是“cp
源文件目标文件”。
$ pwd
/home/scott/libby
$ ls
libby.jpg
$ cp libby.jpg libby_bak.jpg
$ ls
libby_bak.jpg libby.jpg
例子非常简单:将图片复制到源文件所在的相同目录中。也可以将文件复制到另一个目录中,甚至可以从非当前工作目录复制到文件系统的其他任何目录。
$ pwd
/home/scott
$ ls ~/libby
libby_bak.jpg libby.jpg
$ cp pix/libby_arrowrock.jpg libby/arrowrock.jpg
$ ls ~/libby
arrowrock.jpg libby_bak.jpg libby.jpg
这个例子中使用的文件名相同(都是libby_closeup.jpg
),没关系,因为是要将这个文件复制到另外一个目录中。但是,在第一个cp
命令的例子中,必须使用新的文件名称,用libby_bak.jpg
代替libby.jpg
,因为这是在将一个文件复制到同一目录。
如果你想从其他目录复制文件到当前工作目录(你目前所在的目录),只需要使用..
。(还记得在本章前面学过的.
表示“当前目录”吗?现在你就明白它能在这儿派上用场了。)当然,如果使用.
就不能更改文件名称,因为它只是原来文件名称的快捷方式。
$ pwd
/home/scott/libby
$ ls
libby_bak.jpg libby.jpg
$ cp pix/libby_arrowrock.jpg .
$ ls
arrowrock.jpg libby_bak.jpg libby.jpg
如果直接将目标文件复制到指定的目录中,则不需要指定目标文件的文件名,只需提供目录名就可以了。
$ ls -l
drwxr-xr-x 224 2005-10-20 12:34 libby
drwxr-xr-x 216 2005-09-29 23:17 music
drwxr-xr-x 1.6K 2005-10-16 12:34 pix
$ ls libby
arrowrock.jpg libby.jpg
$ cp pix/libby_on_couch.jpg libby
$ ls libby
arrowrock.jpg libby.jpg libby_on_couch.jpg
在上个例子中,必须确保名为libby
的目录已经存在,以便能将libby_on_couch.jpg
复制到其中。否则,最终将在home
目录中生成一个名为libby的文件。