如何对目录进行 tar-gzip 并将结果放入其自身中?

如何对目录进行 tar-gzip 并将结果放入其自身中?

我想备份 Linux 上的整个主目录。假设该目录是我唯一具有写入权限的目录。

我如何 tar-gzip 这个目录并将结果放入其自身中?

答案1

tar zcf home-backup.tar.gz --排除 ./home-backup.tar.gz 。

答案2

已经建议的

tar zcf home-backup.tar.gz --exclude home-backup.tar.gz .

可以,但我不太喜欢那种包含大量文件而不是只有一个目录的 tars。如果您想执行相同的操作,但作为一个目录:

cd /home
tar -czf yourhome/yourhome.tgz --exclude yourhome.tgz yourhome/

在这两种情况下,您都会收到一条错误消息:

tar: yourhome: file changed as we read it

如果您想从脚本备份并检查退出代码,这可能是一个问题,无论如何,如果您忽略这一点,它可能会隐藏另一个问题。您可以在开始备份之前创建一个空的 tgz 来消除这种情况:

touch yourhome.tgz

答案3

如果您使用有效的现代 tar 实现,这将按照您喜欢的开箱即用方式工作:

star -cz . > archive.tar.gz

将打印警告:

star: 'archive.tar.gz' is the archive. Not dumped.

相关内容