2012-08-06 126 views
1

所以我有一個tarball的目錄。即/ home/username/dir_w_tarballs。其中一個tarball是一位曾經在這裏工作的工程師的許可證密鑰。如何在目錄中的每個tarball中搜索特定文件?類似於find . -name some_file?我知道我可以用tar -jtvf file.tar.bz2搜索一個tarball。我希望有更廣泛的範圍。搜索文件的tarball目錄?

回答

2

如何:

find -name '*.tar' -o -name '*.tar.*' | while read f; do 
    tar -tf "$f" | grep some_file | sed "s|^|$f:|" 
done 

它會遞歸查找當前目錄下的所有壓縮包,列出他們中的每一個,使用grep來搜索特定的文件,然後sed預先設置壓縮包的名稱以每比賽,這樣你就能夠知道哪些壓縮包裏面包含每場比賽...

+0

感謝您的快速反應!似乎沒有爲我工作。我進入這一切作爲一個行命令,這樣 – Houdini 2012-08-06 21:01:02

+0

@Houdini:如果你進入它作爲一個內膽,你需要一個額外的',''之前... done' – thkala 2012-08-06 21:03:28

+0

@Houdini:這也假設一個比較新的如果沒有明確的'-z' /'-j'選項可以解壓縮包'tar'版本... – thkala 2012-08-06 21:04:29