2.31 复制文件到其他目录以作为完整的备份
cp -a
或许你现在正在想cp
命令可以用来备份文件,确实如此(虽然还存在更好的程序,例如我们在第15章中介绍的rsync
,就是其中一个)。不过只要使用几行bash
shell脚本,cp
命令也可以作为备份各种文件和目录的有效方法。在这种情况下最有用的选项就是-a
选项(或--archive
),它相当于以下几个选项的组合:-dpR
(或--no-dereference --preserve–recursive
)。有关-a
选项的另一种说法是:-a
选项可以确保cp
命令不会复制符号链接的内容(否则可能会极大地增加复制量),只保存关键的文件属性(例如拥有者、时间戳),并递归处理子目录。
$ pwd
/home/scott
$ ls -l
drwxr-xr-x 216 2005-10-21 11:31 libby
drwxr-xr-x 216 2005-09-29 23:17 music
$ ls -lR libby
libby:
total 312
-rw-r--r-- 73786 2005-10-20 12:12 arrowrock.jpg
-rw-r--r-- 18034 2005-04-19 00:57 libby.jpg
-rw-r--r-- 198557 2005-04-19 00:57 on_couch.jpg
drwxr-xr-x 168 2005-10-21 11:31 on_floor
libby/on_floor:
total 764
-rw-r--r-- 218849 2005-10-20 16:11 on_floor_01.jpg
-rw-r--r-- 200024 2005-10-20 16:11 on_floor_02.jpg
-rw-r--r-- 358986 2005-10-20 16:11 on_floor_03.jpg
$ cp -a libby libby_bak
$ ls -l
drwxr-xr-x 216 2005-10-21 11:31 libby
drwxr-xr-x 216 2005-10-21 11:31 libby_bak/
drwxr-xr-x 216 2005-09-29 23:17 music
$ ls -lR libby_bak
libby:
total 312
-rw-r--r-- 73786 2005-10-20 12:12 arrowrock.jpg
-rw-r--r-- 18034 2005-04-19 00:57 libby.jpg
-rw-r--r-- 198557 2005-04-19 00:57 on_couch.jpg
drwxr-xr-x 168 2005-10-21 11:31 on_floor
libby/on_floor:
total 764
-rw-r--r-- 218849 2005-10-20 16:11 on_floor_01.jpg
-rw-r--r-- 200024 2005-10-20 16:11 on_floor_02.jpg
-rw-r--r-- 358986 2005-10-20 16:11 on_floor_03.jpg
说明 是的,可能你已经明白了,但是让我再确定一下:Libby是我的小狗,一只可爱的西施犬,几乎把我写的所有东西最终以某种方式消灭掉。可以在以下链接看到它:http://www.granneman.com/go/libby。