0

我想问一下是否有一种方法可以在 .tar.gz 文件中搜索文件而不提取它?如果有,有没有办法按日期搜索该文件?

我的操作系统是 AIX。

谢谢!

4

2 回答 2

0

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)。我不建议在实际的磁带驱动器上运行该命令!

于 2013-10-23T00:48:22.883 回答
0

$ tar tzf archive.tar.gz | grep“搜索”

于 2015-12-09T18:43:48.037 回答