Tar
在 tar 文件目錄中查找所有包含模式的文件
我在一個目錄中有所有 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
希望這可以幫助!