我想问一下是否有办法在.tar.gz文件中搜索文件而不提取它?如果有,有没有办法按日期搜索该文件?
我的操作系统是AIX。
谢谢!
答案 0 :(得分:0)
tar
保存它归档的文件的时间,但并非所有的tars都这样做,并且遗憾的是,在这种情况下我不熟悉特定于AIX的tar。您需要知道的是,是否使用--atime-preserve
调用了tar(AIX tar可能不支持此操作;请务必检查),并且当您调用提取时,必须使用-p
标志。所以,你会有这样的事情:
tar zxpf file.tar.gz the/file/you/want.txt
您可能会发现Unix(cf Linux)tar不支持-j
和-z
,因此您必须使用:
gzip -dc file.tar.gz | tar xf - the/file/you/want.txt
从管道运行命令。在这种情况下,您需要知道要提取的文件的名称,您可以从中获取:
tar tf file.tar.gz
根据需要使用压缩。如果您正在寻找名为foo的文件,显然您可以使用| grep foo
。
我认为,根据tarball中文件的修改日期,我不认为可以从tar中提取文件 - 至少我无法在文档中找到对此类文件的支持。请记住,tar
只是磁带归档器,并不打算做这些奇特的事情。 : - )
最后,你可以这样做:
tar xvf file.tar `tar tf file.tar | grep foo`
如果你想从file.tar
中拉出与'foo'相匹配的所有文件(yada yada以上压缩)。我不建议在实际的磁带机上运行该命令!
答案 1 :(得分:0)
$ tar tzf archive.tar.gz | grep"搜索"