当我使用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.gz和3.gz;它在存档中找不到这些文件,这会导致错误消息
您需要使用命令xargs的for循环来提取文件
ls*.gz | xargs-n1 tar-xzf
这意味着:对当前目录中的每个gz-文件运行metar-xzf