files-from 中的 tar 通配符

files-from 中的 tar 通配符

尝试运行tar--files-from我有一个文件 files.txt,其中包含

/dir1/files*.txt

然而它抱怨 /dir1/files*.txt 不存在,但ls证明它确实存在。

我也尝试添加--wildcards但结果相同。

如何在--files-from不使用命令行指定文件的情况下成功存档通配符?

答案1

在 shell(例如 bash)运行命令之前,命令中的星号会被展开。

例如,当你运行ls *.txt,并且目录中有三个 txt 文件a.txtb.txtc.txtbash 会将其扩展为 ls a.txt b.txt c.txt

我不相信 GNU tar 支持这种行为,但是您可以使用 find 并将其导入 tar: find /dir1 -iname '*.txt' -printf '%P\n' | tar --files-from=- -cvf textfiles.tar

根据手册页,该--wildcards标志仅可在提取或列出已存在的档案内容时使用。

相关内容