tar cvf backup.tar -C / / # or
tar cvf backup.tar /
生成如下档案
etc/
并发出警告
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
另一方面
tar cvf backup.tar -C / .
生成如下档案
./etc/
并且不给出任何警告。我从 Debian 教程中得到了最后一个警告。
哪个最适合系统备份,它们的工作原理完全相同吗?
tar -tvh 生成之间没有区别吗
。/ETC/
来自档案
和焦油-tvh生产
ETC/
来自档案
?
答案1
您给出的两个例子实际上是等效的——您最终会在档案中得到相对路径。
如果您想在档案中包含绝对路径,请使用 -P,但请注意,恢复到根目录以外的任何地方都会不方便。
答案2
您想使用什么取决于您正在做什么。
如果您只是想备份文件,那么该tar
命令就适合您(更多信息见下文)。如果您想要制作硬盘映像,那么请使用该dd
命令。请注意,您不能直接将tar
备份放在新驱动器上并使用它启动。
您在使用该命令时会遇到的问题tar
是,您的文件将被放置在 / 目录下,而这正是您要备份的目录。因此,您需要排除您的备份文件。
cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz /
答案3
我发现了一个sed 解决方案,这比使用 tar 两次要好。
tar cvfz backup.tar.gz -C /path/to/dir/ --transform 's/^\.//' .