(方法1) # cp -a /source/directory /dest/directory # 要求 GNU cp
传统的cp命令无法完成这个任务,因为它即不对符号链接区分对待,也不能保存硬链接。
(方法2) # (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp - )
Tar克服了cp在处理符号链接时出现的问题,然而,cpio可以处理特殊文件,传统的tar却不行。
对于某个有多重硬链接的文件,tar的处理方法是只将其中一个链接拷贝到磁带上,所以日后你只能找回拷贝中所保留那个的链接所指的文件;
cpio会为每个链接做一个拷贝,日后你可以找回任意一个链接所指的文件。
(方法3)如果包含硬链接,则需要更严谨的方法: # cd /path/to/old/directory # find . -depth -print0 | afio -p -xv -0a /mount/point/of/new/directory
afio更善于处理cpio格式的文档包。通常它比 cpio 要快,且提供了更多磁带选项,并且能更友好的处理有讹误的输入数据。它支持交互式处理多卷文档包。
用afio制作压缩文档包比压缩tar或cpio文档包更安全。在备份处理脚本中afio是更佳的“文档处理引擎”。
磁带一般使用afio。
(4)如果是远程操作: # (cd /source/directory && tar cf - . ) | ssh user@host.dom (cd /dest/directory && tar xvfp - )
(5) 如果没有链接文件:
# scp -pr user1@host1.dom:/source/directory user2@host2.dom:/dest/directory
(6)# apt-get install pax
$ pax -rw -p e . newdir or $ find . -depth | pax -rw -p e newdir
pax可以读、写以及列出文档包的成员,并能拷贝文件目录层次。pax的操作独立于特定的文档包格式,支持各种各样不同的文档包格式。
pax工具刚刚成形,还很新。
备份工具
完整备份: dump -0u -f /root/boot.dump /boot 差异备份: dump -1u -f /root/boot.dump.1 /boot dump -W (Ubuntu中,/var/lib/dumpdates) 备份单个目录(这个目录并没有完全占据一个文件系统): dump -0j -f /root/etc.dump.bz2 /etc
dump备份的东西由restore命令来还原。 还原: restore -r -f /root/boot.dump 使用交互方式,来还原文件: restore -i -f /root/boot.dump