名称中带方括号的文件未由 tar 提取

api*_*pic 4 linux shell tar

在 Linux 上,我tar使用以下命令从存档中提取文件

tar -xC / -f /tarFile.tar someFolder/[HD] video1.mp4
Run Code Online (Sandbox Code Playgroud)

这总是很好,但在文件名包含方括号的情况下则不然。焦油响应是

someFolder/[HD] video1.mp4: not found in archive
Run Code Online (Sandbox Code Playgroud)

如果我删除方括号,文件将被很好地提取。

我已经尝试\使用'. 没运气。

任何提示?谢谢

roa*_*ima 7

您提供的第一个命令将尝试提取两个或三个文件:

someFolder/H
someFolder/D
video1.mp4
Run Code Online (Sandbox Code Playgroud)

如果你用单引号文件名(')的tar程序将看到[HD]并处理它作为一个水珠通配符,意思是“无论HD”。因此,它将尝试提取两个文件:

someFolder/H video1.mp4
someFolder/D video1.mp4
Run Code Online (Sandbox Code Playgroud)

引用文件名使用--no-wildcards标志将抑制这些尝试的扩展:

tar -xC / -f /tarFile.tar 'someFolder/[HD] video1.mp4' --no-wildcards
Run Code Online (Sandbox Code Playgroud)