tar --from-files,不解释文件名开头的连字符

tar --from-files,不解释文件名开头的连字符

我们在 CentOS 7.9 上使用 tar 1.26,我试图解压一个包含以连字符开头的文件的存档。

我通过 tar 告诉--files-from我要提取哪些文件,因为我不想提取所有内容。

filelist.txt为此,我有包含以下内容的文件
-myfile.txt

调用 tar liketar -xmf mytar.tar --no-wildcards --files-from filelist.txt会导致 tar 出错并出现以下错误

tar: invalid option -- 'y'

这是因为 tar 将起始连字符解释为 tar (我假设)的参数,
我已经添加了--no-wildcards以禁用模式匹配。

是否有可能禁用此行为,或者更好地告诉 tar 从filelist.txt字面上获取每个条目而不尝试匹配/解释任何内容?

答案1

tar如果可以选择升级到 GNU 1.29 或更高版本,则该--verbatim-files-from开关提供您似乎正在寻找的功能。引用手动的:

--verbatim-files-from
将从文件列表中获取的每一行视为文件名,即使它以破折号开头。文件列表由--files-from( ) 选项提供-T。默认行为是处理文件列表中提供的名称,就像在命令行中键入它们一样,即任何以破折号开头的名称都被视为tar选项。该--verbatim-files-from选项禁用此行为。

不幸的是,--verbatim-files-from在 GNU 1.26 中不可用tar

相关内容