web-dev-qa-db-fra.com

Comment utiliser la commande de recherche plus efficacement?

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, aucun d’eux n’ayant de lien avec ma recherche.

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

15
Sam007

vous dites en général trouver où commencer la recherche et quoi chercher. La syntaxe des chemins à rechercher et de ce que vous essayez réellement de trouver est donc différente.

Dans le cas d'utilisation que vous mentionnez, supposons que vous souhaitiez trouver le fichier passwd dans /etc:

find /etc/ -name passwd

vous dites "à partir de etc, cherchez un fichier dont name est passwd

si vous ne spécifiez pas de critères (ou d '"options" dans le jargon de la recherche), la recherche trouvera, elle commencera dans le ou les chemins que vous spécifiez, et trouvera tous les fichiers et répertoires en dessous de manière récursive. Ainsi, les options "filtrent" ces fichiers pour préciser ce que vous recherchez.

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

find / -name "*jpg" 

Il est recommandé d'utiliser des guillemets dans vos options car, dans le cas contraire, une expansion de Shell peut vous causer des maux de tête.

Recherchez des fichiers pdf, quel que soit le cas, dans Documents ou Téléchargements:

find Documents/ Downloads/ -iname "*pdf"

Si vous faites man find et faites défiler jusqu'à TESTS, vous trouverez tous les "critères" que find peut utiliser pour affiner votre recherche. Vous pouvez rechercher des fichiers portant des noms de fichiers spécifiques, appartenant à des utilisateurs ou à des groupes spécifiques, ayant une autorisation de fichier spécifique, appartenant à un type spécifique (par exemple, -type d ne trouvera que des répertoires, alors que -type f ne trouvera que des fichiers bruts, à l’exception des répertoires), des fichiers plus récents ou âgés de plus de quelques jours (ou minutes), de fichiers vides, exécutables, etc.

Dans la page de manuel de find, vous trouverez également une section intitulée ACTIONS. Elles peuvent aller après les critères et sont déclenchées par tout fichier correspondant à tous les critères. Ainsi, vous pouvez demander à find de supprimer des fichiers trouvés, d’exécuter des commandes arbitraires dessus, etc.

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

find [starting path(s)] [conditions or criteria]
24
roadmr