11 votes

Comment combiner les résultats de plusieurs commandes `find` ?

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + > checklist.chk

Comment combiner ces deux commandes ?

  1. Soit en combinant les deux termes de recherche en une seule commande, soit en utilisant la commande

  2. De sorte que chaque commande ajoute sa sortie au même fichier.

J'espère que ce que j'essaie de faire est clair.

25voto

Fabiano Soriani Points 543

Combinaison :

find -type f \( -name "*.avi" -or -name '*.mp4' \) -exec md5sum {} + > checklist.chk 

Ajout de la sortie dans un fichier :

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + >> checklist.chk

8voto

heemayl Points 85741

Il existe de nombreuses façons de procéder :

Utilisation ou -o :

find . -type f \( -name '*.avi' -o -name '*.mp4' \) -exec md5sum {} + > checklist.chk

Utilisation des expressions rationnelles :

find . -type f  -regextype posix-extended -regex '.*\.(avi|mp4)$' -exec md5sum {} + > checklist.chk

Les deux écriront la sortie dans le fichier checklist.chk .

4voto

Sergiy Kolodyazhnyy Points 97292

Avec la -o (qui se trouve sous OPERATEURS dans la rubrique find (page de manuel)

find . -type f \( -name "*.avi" -o -name "*.mp4" \) -exec md5sum {} + > checklist.chk

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X