Comment utiliser la commande find sous linux

Video: Ligne de commandes Linux - partie 2 - Commandes de base

L`interface de ligne de commande Linux est un très puissant et flexible. Ce qui rend ce sont donc la collection d`outils qui font partie de celui-ci. Des outils tels que grep, awk, trouver, localiser, et ainsi de suite, vous rendre la vie beaucoup plus facile lorsque vous devez trouver les fichiers, rechercher un texte dans un fichier ou remplacer un mot par un autre. Regardons la trouver commande et voyez comment vous pouvez l`utiliser pour améliorer votre processus de recherche en ligne de commande.

Dans sa forme la plus simple la commande find serait utilisé comme celui-ci

# trouver .
.helloworld.txt
.image01.jpg
.image02.jpg
.image03.jpg

Video: Rechercher un fichier à l'aide de ligne de commande - Linux

Cette commande vous donnera une liste de tous les fichiers et dossiers dans le répertoire courant. Attention qu`il affiche tous les fichiers contenus dans des sous-dossiers ainsi, la liste pourrait être très longue. Appuyez sur la commande + C de touches pour arrêter l`affichage de plusieurs fichiers.

Ceci est l`utilisation la plus simple de la commande find. En utilisant une combinaison de certains des paramètres et des expressions régulières de la commande que vous pouvez faire la recherche de fichiers beaucoup plus intelligents. Par exemple, si vous voulez trouver tous les fichiers dont le nom commence par image exécutez la commande suivante en fonction de découverte:

# trouver . l`image -name *

nous avons utilisé ici la -prénom paramètre trouver à tous les fichiers commençant par le mot image. Notez que cette recherche est sensible à la casse. Modifier la commande # trouver . l`image -iname * pour obtenir des résultats qui ne sont pas sensibles à la casse.

Vous pouvez, bien sûr, effectuer des recherches génériques pour les fichiers avec une certaine extension. Pour trouver tous les fichiers contenus dans le dossier en cours et les sous-dossiers avec un .php l`extension exécutez la commande suivante, # trouver . -name *. php. Vous pouvez également effectuer des recherches négatives. Par exemple, si vous voulez lancer une recherche de tous les fichiers contenus dans un dossier et ses sous-dossiers qui ne se termine pas avec l`extension .php exécuter la commande # trouver . ! -name « * .php ». Notez le point d`exclamation que nous avons mis en place pour lancer la recherche négative. Ceci peut être utilisé pour toutes les autres options.

L`un des problèmes que je rencontre souvent lorsque vous utilisez la commande find est qu`il recherche tous les sous-dossiers par défaut. Parfois, vous voulez juste à la recherche dans un dossier. De demander FIND pour ce faire, vous devez utiliser la -profondeur max option. En utilisant cette option, vous pouvez dire à trouver combien de niveaux dans des sous-dossiers, il doit regarder tout en exécutant sa recherche. Donc, si vous le souhaitez rechercher des fichiers dans le jeu de dossier en cours maxdepth à zéro. La commande nous avons utilisé précédemment pour rechercher tous les fichiers non PHP ressemblerait à quelque chose comme ça si nous voulions exécuter uniquement dans le dossier en cours - # trouver . ! -name « * .php » -maxdepth 0. Augmenter la valeur de maxdepth à un et plus quand vous voulez augmenter la profondeur de la recherche. De même, vous pouvez également définir la -mindepth si vous souhaitez définir une limite supérieure pour le niveau des dossiers recherchés. Vous pouvez utiliser ces deux ensemble pour lancer une recherche sur les dossiers de niveau inférieur sans obtenir des résultats d`autres dossiers.

Recherche avec d`autres critères

Nous avons examiné comment rechercher des fichiers en utilisant le -prénom option. La commande find peut lancer une recherche en fonction de plusieurs autres critères aussi. par exemple, si vous voulez trouver tous les fichiers appartenant à un utilisateur d`utiliser la -utilisateur option. Donc, si vous voulez trouver tous les fichiers PHP appartenant à l`Stewie utilisateur dans un dossier utilisez la commande, # trouver . -name « * .php » -maxdepth 2 -user Stewie.

Trouver silencieux

Souvent, vous pouvez utiliser la commande find dans les scripts shell. La commande se jette quelques erreurs. Cependant, lorsque vous l`exécutez en tant qu`utilisateur normal, il y a des erreurs liées à l`autorisation qui apparaissent souvent. Par exemple, si vous deviez lancer une recherche de fichier dans le répertoire racine en tant qu`utilisateur non root, vous pourriez voir des erreurs telles que : Permission refusée surgir. Cela peut être très gênant lors de l`utilisation de la commande dans un script. Bien que la commande find elle-même ne semble pas avoir une solution à cela, on peut facilement se rabattre sur une solution simple et UNIX. Rediriger toutes les erreurs à bon vieux / Dev / null. Ainsi, une commande comme ceci:

Video: Commandes de base Linux - Ep49 - Rechercher des fichiers commande find - partie 2

# Find / -name Stewie Griffin *
/ Root: Autorisation refusée
/ Home / PeterG: Autorisation refusée
/home/stewie/StewieGriffin-resume.doc

Sera converti en

# Find / -name Stewie Griffin * 2GT; / dev / null
/home/stewie/StewieGriffin-resume.doc

Maintenant, vous pouvez utiliser en toute sécurité la commande find dans vos scripts, sans se soucier des erreurs de culture dans la sortie.

Video: Commandes de base Linux - Ep51 - Rechercher des fichiers commande find - partie 4

Trouver pour les paresseux

Je suis un utilisateur de Linux paresseux. Je suis sûr qu`il ya beaucoup d`autres comme moi là-bas. Je suis assez à l`aise avec la commande grep. Bien que trouver dispose de plusieurs options très utiles par lui-même, je me retrouve avec le avec grep très souvent. L`option de conduite UNIX rend ce très facile. Donc, si je voulais rechercher un fichier contenant le mot « web » je généralement il suffit d`exécuter une recherche comme celui-ci, # trouver . | grep web. Ceci est l`équivalent de # trouver . web -nom. De même, si je voulais exécuter la même recherche, mais faire en sorte que ce n`est plus sensible à la casse, je courrais, # trouver . | grep -i web. De la même manière, vous pouvez combiner la commande find avec sed ou awk. La beauté de la ligne de commande Linux ou UNIX est que chacun de ces outils est très puissant. La chance que vous aurez le temps ou la nécessité de les maîtriser tout est un peu petite. Au lieu de cela, vous êtes mieux apprendre un outil vraiment bien et obtenir une idée de base du reste, juste au cas où vous en avez besoin.

Articles connexes