使用正则表达式时出现Shell“tar:未在存档中找到”错误

当我使用tar-xzf*.gz提取当前目录中的所有.gz文件时,我发现未在存档中找到错误。但是,如果我一个接一个地提取或使用类似for循环的

用于'ls*.gz'中的文件;dotar-xzf$文件;完成

这个错误的原因是什么

当你写作时

tar-xzf*.gz

shell将其展开为字符串:

tar-xzf 1.gz 2.gz 3.gz

(假设1.gz、2.gz和3.gz在当前目录中)

tar认为您想要从1.gz中提取2.gz3.gz;它在存档中找不到这些文件,这会导致错误消息

您需要使用命令xargsfor循环来提取文件

ls*.gz | xargs-n1 tar-xzf

这意味着:对当前目录中的每个gz-文件运行metar-xzf

发表评论