如何 Tar 文件并排除目录和“。”文件

如何 Tar 文件并排除目录和“。”文件

我在新电脑上安装 Ubuntu,并从旧电脑(Ubuntu)传输文件。在我的主目录中,我想 tar 所有文件,但排除目录和“。”文件。我找不到 tar 排除来执行此操作。可以吗?

答案1

这不是您想要的,但您可以使用--strip-components选项从文件名中排除 N 个文件夹。

例如,这将提取跳过顶层文件夹的文件

tar -xf har-tools.tar --strip-components 1

StackOverflow 答案建议另一种方法,但您必须使用另一个命令删除文件夹。

tar xf har-tools.tar --transform='s/.*\///'

这基本上用文件名将所有前导路径条目替换为空字符串。

答案2

那么我建议您按照以下逻辑进行操作:

首先在您的主目录中找到所需的文件,然后将其 tar 到存档中。

find /path/to/home -type f -print0 | tar -cvzf backup.tar.gz --null -T -

这将有助于查找文件,普通的 find 命令会忽略所有隐藏文件。在备份文件时,可能会出现文件名中空格的常见问题,请忽略该问题- 无效的被使用,并且在 tar 函数中 -cvzf 解释为 create、verbose、compress、filename。
希望这对您有用。干杯。

相关内容