Utiliser la commande find dans le script bash
Je viens de commencer à utiliser des scripts bash et j'ai besoin d'utiliser la commande rechercher avec plus d'un type de fichier.
list=$(find /home/user/Desktop -name '*.pdf')
ce code de travail pour le type de fichier pdf, mais je recherche plus d'un type de fichier comme .txt ou .bmp ensemble.Avez-vous une idée ?
source d'informationauteur justuser
Vous devez vous connecter pour publier un commentaire.
Bienvenue à bash. C'est un vieux, sombre et mystérieux de la chose, capable d'une grande magie. 🙂
L'option que vous demandez est pour le
find
de commande, pas de bash. Depuis la ligne de commande, vous pouvezman find
pour voir les options.Celui que vous cherchez est
-o
pour "ou":Cela dit ... ne pas le faire. De stockage comme cela peut fonctionner pour de simples noms de fichiers, mais dès que vous avez à traiter avec des caractères spéciaux, tels que les espaces et retours à la ligne, tous les paris sont éteints. Voir ParsingLs pour plus de détails.
Nom de chemin d'expansion (expansion) fournit une bien meilleure/plus sûr moyen de garder la trace des fichiers. Ensuite, vous pouvez également utiliser bash tableaux:
La Bash FAQ a beaucoup d'autres excellents conseils sur la programmation en bash.
Si vous souhaitez faire une boucle sur ce que vous "trouver", vous devez utiliser cette:
Source: https://askubuntu.com/questions/343727/filenames-with-spaces-breaking-for-loop-find-command
Vous pouvez utiliser ceci:
En outre, vous pourriez vouloir utiliser
-iname
au lieu de-name
pour attraper les fichiers avec ".PDF" (en majuscules) de l'extension.