Tar

在 tar 文件目錄中查找所有包含模式的文件

  • January 6, 2016

我在一個目錄中有所有 tar 文件。我想在 tar 文件中找到一些文件而不提取所有 tar 文件。

我知道如何使用一個 tar 文件:

tar tvf abc.tar | grep xyz

我想在所有 tar 文件中查找,但我不知道如何查找。

假設您所有的 tar 文件名都以.tar. 假設您正在所有這些 tar 文件中查找名稱以.dat. 有了這些假設,您可以使用:

$ for f in `find . -type f -name "*.tar" -print`; do tar tf $f | grep \.dat > /dev/null && echo $f; done

find命令用於獲取.tar文件列表;您最終可能會得到包含文件以外的.tar文件的目錄。對於找到的每個.tar文件,列出其目錄 ( tar tf),以及grep與我們的模式匹配的名稱的目錄。

上面的範例命令只是列印出.tar包含與我們的模式匹配的文件的文件名;如果您還想查看匹配文件的名稱,則可以刪除該命令的> /dev/null一部分。grep

希望這可以幫助!

引用自:https://serverfault.com/questions/747014