我想问一下是否有一种方法可以在 .tar.gz 文件中搜索文件而不提取它?如果有,有没有办法按日期搜索该文件?
我的操作系统是 AIX。
谢谢!
tar
可以指示在它归档的文件上保留时间,但并非所有 tar 都这样做,不幸的是,在这种情况下,我不熟悉 AIX 特定的 tar。您需要知道是否使用 tar 调用了--atime-preserve
(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
根据需要使用压缩。显然,| grep foo
如果您正在寻找一个名为 foo.
我认为不可能根据 tarball 中文件的修改日期从 tar 中提取文件——至少我无法在文档中找到对此类的支持。请记住,tar
它只是磁带存档器,并不意味着做这些花哨的事情。:-)
最后,您可以这样做:
tar xvf file.tar `tar tf file.tar | grep foo`
如果你想从中提取所有匹配'foo'的文件file.tar
(压缩高于yada yada)。我不建议在实际的磁带驱动器上运行该命令!
$ tar tzf archive.tar.gz | grep“搜索”