我想备份 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.