Você pode pesquisar em cada tipo de arquivo específico da seguinte forma:
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'
Você pode simplificar seu uso sempre pesquisando começando no diretório atual e aceitando o padrão de correspondência de arquivo (que pode incluir expressões regulares ou simplesmente todo ou parte do nome do arquivo) como um parâmetro de linha de comando:
Crie um script (chamado, por exemplo, "arcsearch") em seu caminho executável (por exemplo, / usr / local / bin), certificando-se de "chmod + x" para torná-lo executável, com este conteúdo:
find . -iname
find . -iname '*.zip' -exec unzip -l {} \; | grep
find . -iname '*.tar.gz' -exec tar tvf {} \; | grep
find . -iname '*.7z' -exec 7z l {} \; | grep
Você pode simplesmente digitar:
arcfind whatever_you_want
e ele vai cuspir os resultados, tanto os arquivos "normais" quanto os arquivos dentro dos arquivos.