我想检查一个文件是否在gzip的tar档案中。 例如,我想检查/ etc / passwd是否存在于档案backup_2010-09-27.tar.gz中
愚蠢的解决scheme可以是:
tar -tzf backup_2010-09-27.tar.gz | grep '/etc/passwd'
但是这需要时间。 有更好的解决scheme吗?
试试这个(省略最初的斜线):
tar -tzf backup_2010-09-27.tar.gz etc/passwd
其耗时的过程,无法在压缩之前到达焦油档案成员。 我不知道列出tar时显式指定成员偏移量有多大帮助,但是如果成员查找过程比完全列表更快,那么:
tar -K etc/passwd -tzf backup_2010-09-27.tar.gz| head -1
我怀疑这是什么。
你也可以尝试提取文件并检查返回代码,这样你就可以完全清除归档和grepping。
echo etc/passwd | tar -T - -K etc/passwd -Oxzf backup_2010-09-27.tar.gz >/dev/null
$? 应该是零
还是,枪支….