当我使用tar -xzf *.gz
来提取当前目录中的所有.gz
个文件时,我得到了Not found in archive
个错误.然而,如果我一个接一个地提取或使用类似for循环的
for file in `ls *.gz`; do tar -xzf $file; done
这个错误的原因是什么?
当我使用tar -xzf *.gz
来提取当前目录中的所有.gz
个文件时,我得到了Not found in archive
个错误.然而,如果我一个接一个地提取或使用类似for循环的
for file in `ls *.gz`; do tar -xzf $file; done
这个错误的原因是什么?
当你写作时:
tar -xf *.gz
tar
命令可以看到(例如):
tar -xf abc.tar.gz def.tar.gz ghi.tar.gz
这被解释为从档案abc.tar.gz
中提取def.tar.gz
和ghi.tar.gz
的请求.因为文件不在里面,你会收到警告信息.
换句话说,tar
一次(在一次调用中)操作一个tar
文件(可能是压缩的).它不在多个tar文件上运行.
请注意,如果abc.tar.gz
包含文件pqr/xyz/important.c
,则可以通过指定以下内容仅提取一个文件:
tar -xf abc.tar.gz pqr/xyz/important.c
您使用的符号只是这个符号的变体.
(是的,tar
文件可能是有原因的.例如,Gmail不允许你发送一个tar文件或一个包含可执行文件的gzip tar文件.但是,如果你将一个gzip tar文件嵌入一个非压缩tar文件中,它不会在内部文件中查找可执行文件.我需要发送一个带有可执行脚本的tar文件.)