(非常に古い)ファイルを見つけようとしていますが、そこからNASのどこかにあると確信しています。残念ながら、古いファイルのいくつかをtar.gz、Zip、または7zに保存しています。
これらのアーカイブのコンテンツを含むすべてのファイルとフォルダーを検索する方法はありますか?
おそらくfind
またはlocate
にこれらのアーカイブを検討し、ディレクトリツリーをたどって中を見るように指示できますか?
次のように、特定の各アーカイブタイプ内を検索できます。
cd /dir/where/you/want/to/start/search
find . -iname '*.Zip' -exec unzip -l {} \; | grep 'file_pattern'
find . -iname '*.tar.gz' -exec tar tvf {} \; | grep 'file_pattern'
find . -iname '*.7z' -exec 7z l {} \; | grep 'file_pattern'
常に現在のディレクトリで検索を開始し、コマンドラインパラメーターとしてファイルマッチングパターン(正規表現を含むか、単にファイル名のすべてまたは一部である可能性がある)を受け入れることにより、その使用を簡素化できます。
実行可能パス(例:/ usr/local/bin)にスクリプト(例:「arcsearch」)を作成し、次の内容で実行可能にするために「chmod + x」することを確認します。
find . -iname $1
find . -iname '*.Zip' -exec unzip -l {} \; | grep $1
find . -iname '*.tar.gz' -exec tar tvf {} \; | grep $1
find . -iname '*.7z' -exec 7z l {} \; | grep $1
次に、次のように入力します。
arcfind whatever_you_want
「通常の」ファイルとアーカイブ内のファイルの両方の結果を吐き出します。