如果我打包 /home/username 并在 /home/username 中创建 .tar 文件,那么我会收到类似的错误,这. file changed as we read it
可能是因为目录文件本身由于创建 .tar 文件而发生变化。当然,我可以在 /home 中创建上一级文件,但这需要 sudo 或登录。我想在不使用 sudo 和重新登录的情况下进行存档和恢复。
我不想将 .tar 文件嵌套在 /home/username 的某个深层位置,这不太方便,而且我怀疑这甚至可能无法解决问题。
答案1
您可以尝试在 /tmp 目录中创建文件。
答案2
您可以使用该--exclude=
标志创建一个忽略您正在写入备份的目录的档案。
创建一个/home/<username>/Backups
文件夹。
像这样尝试一下(替换任何其他额外选项和您想要创建的文件):
tar <extra options> /home/<username>/Backups/yourhomefolderbackup.tar.gz --exclude=/home/<username>/Backups/ /home/<username>/
这样,您就可以保存备份、制作新的备份、删除备份、刻录备份,而不必担心如果您重新启动机器,您的以前的备份会被删除(如果您将它们保存到 /tmp,就会发生这种情况,一旦重新启动,您的备份就会消失!)。
您还应该使用--exclude=
来排除/home/<username>/.local/share/trash
文件夹(或者您的文件夹在哪里.trash
。 编辑: 在 Ubuntu 中,它位于/home/<username>/.trash
),来自您正在创建的存档或您的垃圾将被添加到您正在创建的备份中。只需--exclude=/home/<username>/.trash
在第一个之后添加另一个--exclude=
即可!
高频,GL;)