files-from 中的 tar 通配符

Fel*_*rez 1 tar wildcards

试图tar--files-from. 我有一个文件 files.txt 包含

/dir1/files*.txt
Run Code Online (Sandbox Code Playgroud)

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

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

如何在使用时成功存档通配符--files-from而不在命令行上指定文件?

dam*_*olp 5

命令中的星号在通过 shell(例如 bash)运行命令之前被扩展。

例如,当您运行ls *.txt,你必须在目录中有三个txt文件命名a.txtb.txtc.txt庆典它扩展到 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标志只能在提取或列出现有存档的内容时使用。

  • +1 for -printf '%P\n' (2认同)