J'ai besoin de trouver des fichiers qui correspondent à ce modèle:
find root_folder/*/match_string/*.ext
"*" signifie tous les niveaux de dossiers ou de fichiers. Cela signifie donc tout fichier avec une extension "ext" sous root_folder ou son sous-dossier et dont le chemin complet contient un dossier appelé "match_string", par exemple:
root_folder/f1/f2/match_string/f3/f4/1.ext
root_folder/f1/f2/match_string/2.ext
Mais la commande ci-dessus ne fonctionne pas. find -name ne fonctionne pas non plus.
Et je dois sortir la liste des résultats des fichiers correspondants dans un fichier pour une importation ultérieure dans la commande Zip. Il ne semble pas simple d'utiliser ">" si des commandes en cascade sont utilisées.
Vous pouvez utiliser
find /path/to/root_folder -type d -name "match_string" -exec find "{}" -type f -name "*.ext" \; > ~/file_list
La commande recherchera tous les dossiers nommés match_string
, puis recherchez tous les fichiers dont le nom se termine par .ext
en eux et leurs sous-dossiers et liste tous les fichiers trouvés avec leurs chemins absolus. La liste sera stockée dans ~/file_list
.
Si tu utilises
cd /path/to/root_folder
find -type d -name "match_string" -exec find "{}" -type f -name "*.ext" \; > ~/file_list
les fichiers seront répertoriés avec des chemins relatifs vers le répertoire courant, mais le nom du répertoire courant (qui est path/to/root_folder
) ne sera pas affiché, à la place ./
est affiché.
Enregistrer la liste de fichiers dans un fichier avec "point de départ" supprimé ( homme trouver ).
pwd
/opt/askubuntu/
find /opt/askubuntu/ -type f -path '*/askubuntu/temp/*' -name '*.ext' -fprintf /opt/backup/Zip-archive-file.list %P\\n
Zip-archive-file.list
cat /opt/backup/Zip-archive-file.list
temp/example/a/a/a.ext
temp/example/a/a.ext
temp/example/c/c.ext
temp/example/c/c/c.ext
temp/example/b/b.ext
temp/example/b/b/b.ext
Archive à partir du fichier ( man Zip ).
Zip /opt/backup/archive -@ < /opt/backup/Zip-archive-file.list
adding: temp/example/a/a/a.ext (stored 0%)
adding: temp/example/a/a.ext (stored 0%)
adding: temp/example/c/c.ext (stored 0%)
adding: temp/example/c/c/c.ext (stored 0%)
adding: temp/example/b/b.ext (stored 0%)
adding: temp/example/b/b/b.ext (stored 0%)
Résultat de recherche de tuyau vers Zip.
find /opt/askubuntu/ -type f -path '*/askubuntu/temp/*' \
-name '*.ext' -printf %P\\n | Zip /opt/backup/archive -@