2.26 复制文件

cp

复制文件是计算机用户经常做的工作之一,更不用说OS了。Linux shell使用的各命令中,最棒的命令之一就是cp,它用于复制文件和目录。使用cp命令最简单的方法就是输入命令,后面再输入你想复制的文件,然后是被复制文件的新名称。可以把该命令的结构看作是“cp正在从哪复制的文件 正在复制到哪的文件”。这种关系的另一种常见表达方式是“cp 源文件目标文件”。

  1. $ pwd
  2. /home/scott/libby
  3. $ ls
  4. libby.jpg
  5. $ cp libby.jpg libby_bak.jpg
  6. $ ls
  7. libby_bak.jpg libby.jpg

例子非常简单:将图片复制到源文件所在的相同目录中。也可以将文件复制到另一个目录中,甚至可以从非当前工作目录复制到文件系统的其他任何目录。

  1. $ pwd
  2. /home/scott
  3. $ ls ~/libby
  4. libby_bak.jpg libby.jpg
  5. $ cp pix/libby_arrowrock.jpg libby/arrowrock.jpg
  6. $ ls ~/libby
  7. arrowrock.jpg libby_bak.jpg libby.jpg

这个例子中使用的文件名相同(都是libby_closeup.jpg),没关系,因为是要将这个文件复制到另外一个目录中。但是,在第一个cp命令的例子中,必须使用新的文件名称,用libby_bak.jpg代替libby.jpg,因为这是在将一个文件复制到同一目录。

如果你想从其他目录复制文件到当前工作目录(你目前所在的目录),只需要使用..。(还记得在本章前面学过的.表示“当前目录”吗?现在你就明白它能在这儿派上用场了。)当然,如果使用.就不能更改文件名称,因为它只是原来文件名称的快捷方式。

  1. $ pwd
  2. /home/scott/libby
  3. $ ls
  4. libby_bak.jpg libby.jpg
  5. $ cp pix/libby_arrowrock.jpg .
  6. $ ls
  7. arrowrock.jpg libby_bak.jpg libby.jpg

如果直接将目标文件复制到指定的目录中,则不需要指定目标文件的文件名,只需提供目录名就可以了。

  1. $ ls -l
  2. drwxr-xr-x 224 2005-10-20 12:34 libby
  3. drwxr-xr-x 216 2005-09-29 23:17 music
  4. drwxr-xr-x 1.6K 2005-10-16 12:34 pix
  5. $ ls libby
  6. arrowrock.jpg libby.jpg
  7. $ cp pix/libby_on_couch.jpg libby
  8. $ ls libby
  9. arrowrock.jpg libby.jpg libby_on_couch.jpg

在上个例子中,必须确保名为libby的目录已经存在,以便能将libby_on_couch.jpg复制到其中。否则,最终将在home目录中生成一个名为libby的文件。