2.31 复制文件到其他目录以作为完整的备份

cp -a

或许你现在正在想cp命令可以用来备份文件,确实如此(虽然还存在更好的程序,例如我们在第15章中介绍的rsync,就是其中一个)。不过只要使用几行bash shell脚本,cp命令也可以作为备份各种文件和目录的有效方法。在这种情况下最有用的选项就是-a选项(或--archive),它相当于以下几个选项的组合:-dpR(或--no-dereference --preserve–recursive)。有关-a选项的另一种说法是:-a选项可以确保cp命令不会复制符号链接的内容(否则可能会极大地增加复制量),只保存关键的文件属性(例如拥有者、时间戳),并递归处理子目录。

  1. $ pwd
  2. /home/scott
  3. $ ls -l
  4. drwxr-xr-x 216 2005-10-21 11:31 libby
  5. drwxr-xr-x 216 2005-09-29 23:17 music
  6. $ ls -lR libby
  7. libby:
  8. total 312
  9. -rw-r--r-- 73786 2005-10-20 12:12 arrowrock.jpg
  10. -rw-r--r-- 18034 2005-04-19 00:57 libby.jpg
  11. -rw-r--r-- 198557 2005-04-19 00:57 on_couch.jpg
  12. drwxr-xr-x 168 2005-10-21 11:31 on_floor
  13. libby/on_floor:
  14. total 764
  15. -rw-r--r-- 218849 2005-10-20 16:11 on_floor_01.jpg
  16. -rw-r--r-- 200024 2005-10-20 16:11 on_floor_02.jpg
  17. -rw-r--r-- 358986 2005-10-20 16:11 on_floor_03.jpg
  18. $ cp -a libby libby_bak
  19. $ ls -l
  20. drwxr-xr-x 216 2005-10-21 11:31 libby
  21. drwxr-xr-x 216 2005-10-21 11:31 libby_bak/
  22. drwxr-xr-x 216 2005-09-29 23:17 music
  23. $ ls -lR libby_bak
  24. libby:
  25. total 312
  26. -rw-r--r-- 73786 2005-10-20 12:12 arrowrock.jpg
  27. -rw-r--r-- 18034 2005-04-19 00:57 libby.jpg
  28. -rw-r--r-- 198557 2005-04-19 00:57 on_couch.jpg
  29. drwxr-xr-x 168 2005-10-21 11:31 on_floor
  30. libby/on_floor:
  31. total 764
  32. -rw-r--r-- 218849 2005-10-20 16:11 on_floor_01.jpg
  33. -rw-r--r-- 200024 2005-10-20 16:11 on_floor_02.jpg
  34. -rw-r--r-- 358986 2005-10-20 16:11 on_floor_03.jpg

说明 是的,可能你已经明白了,但是让我再确定一下:Libby是我的小狗,一只可爱的西施犬,几乎把我写的所有东西最终以某种方式消灭掉。可以在以下链接看到它:http://www.granneman.com/go/libby