尝试运行tar
。--files-from
我有一个文件 files.txt,其中包含
/dir1/files*.txt
然而它抱怨 /dir1/files*.txt 不存在,但ls
证明它确实存在。
我也尝试添加--wildcards
但结果相同。
如何在--files-from
不使用命令行指定文件的情况下成功存档通配符?
答案1
在 shell(例如 bash)运行命令之前,命令中的星号会被展开。
例如,当你运行ls *.txt
,并且目录中有三个 txt 文件a.txt
,b.txt
则c.txt
bash 会将其扩展为
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
标志仅可在提取或列出已存在的档案内容时使用。