tar-ing / 我应该使用 -C / 。还是只使用 /

tar-ing / 我应该使用 -C / 。还是只使用 /
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/^\.//' .

相关内容