J'essaie de trouver un (très ancien) fichier, dont je suis sûr qu'il se trouve quelque part sur mon NAS. Malheureusement, certains de mes anciens fichiers sont stockés dans tar.gz, Zip ou 7z.
Existe-t-il un moyen de rechercher tous les fichiers et dossiers, y compris le contenu de ces archives?
Peut-être que find
ou locate
peut être chargé de prendre également en compte ces archives et de jeter un œil à l'intérieur de leur chemin dans l'arborescence des répertoires?
Vous pouvez rechercher dans chaque type d'archive particulier comme suit:
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'
Vous pouvez simplifier son utilisation en recherchant toujours en commençant dans le répertoire courant, et en acceptant le modèle de correspondance de fichier (qui pourrait inclure des expressions régulières ou simplement être tout ou partie du nom de fichier) comme paramètre de ligne de commande:
Créez un script (nommé, par exemple "arcsearch") dans votre chemin exécutable (par exemple/usr/local/bin), en vous assurant de le "chmod + x" pour le rendre exécutable, avec ce contenu:
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
Ensuite, vous pouvez simplement taper:
arcfind whatever_you_want
et il crachera les résultats, à la fois les fichiers "normaux" et ceux des archives.