Comment puis-je utiliser la commande find plus efficacement?

15

Je voulais savoir quelle est la meilleure façon d'utiliser efficacement la commande find?

J'utilise généralement, find [filename] [dir]ce qui me donne une longue liste de noms de fichiers dont aucun n'est lié à ma recherche.

J'ai simplement besoin de trouver un fichier dans un répertoire particulier. Quelle est la commande pour cela?

Sam007
la source

Réponses:

24

vous dites généralement trouver où commencer la recherche et ce qu'il faut rechercher. Ainsi, la syntaxe des chemins à rechercher et ce que vous essayez de trouver est différente.

Pour le cas d'utilisation que vous mentionnez, supposons que vous souhaitiez trouver le passwdfichier dans /etc:

find /etc/ -name passwd

vous dites "à partir de etc, recherchez un fichier dont le nom estpasswd

si vous ne spécifiez pas de critères (ou d '"options" dans le langage de recherche), ce que fait la recherche, c'est qu'elle démarre dans le ou les chemins que vous spécifiez et trouve tous les fichiers et répertoires en dessous, récursivement. Ainsi, les options "filtrent" ces fichiers pour affiner ce que vous recherchez.

Trouvez tous les fichiers JPG n'importe où dans votre système de fichiers:

find / -name "*jpg" 

L'utilisation de guillemets dans vos options est recommandée car sinon l'expansion du shell peut vous causer des maux de tête.

Trouvez tous les fichiers pdf, quel que soit le cas, dans les documents ou les téléchargements:

find Documents/ Downloads/ -iname "*pdf"

Si vous le faites man findet faites défiler jusqu'à TESTS, vous trouverez tous les "critères" que find peut utiliser pour affiner votre recherche. Vous pouvez rechercher des fichiers avec des noms de fichiers spécifiques, appartenant à des utilisateurs ou des groupes spécifiques, ayant une autorisation de fichier spécifique, étant d'un type spécifique (par exemple, -type dne trouveront que des répertoires, tandis que -type fne trouveront que des fichiers simples, à l'exclusion des répertoires), des fichiers plus récents ou plus anciens que un nombre spécifique de jours (ou minutes), des fichiers vides, exécutables, etc.

Dans la page de manuel de find, vous trouverez également une section intitulée ACTIONS, celles-ci peuvent aller après les critères et seront déclenchées par n'importe quel fichier qui correspond à tous les critères. Vous pouvez donc avoir à findfaire des choses comme supprimer des fichiers qu'il trouve, exécuter des commandes arbitraires sur eux, etc.

Mais bien sûr, la syntaxe de base reste:

find [starting path(s)] [conditions or criteria]
roadmr
la source
merci cela fonctionne très bien. J'étais vraiment confus et cela aide à
remettre les
1
+1 Ceci est une belle introduction à trouver et enseigne également au PO comment trouver de plus amples informations.
lgarzo