Linux est livré avec un outil puissant nommé find pour trouver un fichier (ou des fichiers). Par défaut, il recherche dans les sous-répertoires un fichier (ou des fichiers) en fonction de certaines conditions.
Dans ce tutoriel, nous apprenons à trouver un fichier sous Linux en utilisant la ligne de commande.
Trouver un fichier sous Linux
La syntaxe de la commande find pour rechercher un fichier sous Linux :
find starting-point options expression
point de départ -Ceci peut être le répertoire courant (indiqué par .) ou le chemin du répertoire où commencer le filtrage. Si aucun chemin n’est indiqué, le répertoire courant est utilisé.
options – Ceci contrôle le traitement des liens symboliques, les options de débogage et l’optimisation des performances.
expression – ce qui doit être recherché.
Pour example:
find -O3
-L /etc -name "*.conf"
- L’option
-03
(options) indique d’effectuer une recherche efficace pour donner de meilleures performances. - le
-L
(options) indique à la commande find de suivre les liens symboliques - le
/etc
(point de départ) spécifie le répertoire à partir duquel commencer la recherche - le
-name "*.conf"
(expression) indique à la commande find ce qu’il faut rechercher.
Trouver un fichier sous Linux par son nom
Vous pouvez utiliser la commande find pour rechercher un fichier par son nom. Pour example pour rechercher le fichier nommé file1.txt dans le répertoire et les sous-répertoires en cours.
find . -name file1.txt
Ici . (point) indique le répertoire courant.
Pour rechercher le fichier nommé file2.txt dans le chemin du répertoire /home/bob et ses sous-répertoires.
find /home/bob -name file2.txt
Pour effectuer une recherche insensible à la casse, utilisez l’option -iname au lieu de -name :
find /home/bob -iname File2.txt
Rechercher des fichiers sous Linux par extension
Utilisez la commande find pour rechercher un fichier (ou des fichiers) à l’aide des extensions de fichier. Pour example pour rechercher un fichier (ou des fichiers) avec une extension “.txt”, tapez :
find /home/bob -name "*.txt"
Trouver un fichier vide
Pour trouver un ou plusieurs fichiers vides, vous utilisez le type de fichier -empty.
Pour example pour trouver tous les fichiers vides dans le répertoire /tmp, tapez :
find /tmp -type f -empty
Trouver un fichier par heure de modification
Pour rechercher un ou plusieurs fichiers dans un répertoire par la dernière modification, utilisez l’option -mtime. Pour example pour rechercher les fichiers texte qui ont été modifiés pour la dernière fois il y a 60 jours, tapez :
find /home/username -name "*.txt" -mtime -60
Rechercher un fichier contenant une chaîne spécifique
Si vous voulez trouver le fichier contenant une chaîne spécifique, vous pouvez combiner find et grep ensemble.
Pour rechercher tous les fichiers *.js contenant la chaîne ‘example’, taper:
find . -name '*.js' -exec grep -i 'example' {} ; -print
Alternativement, vous pouvez également obtenir les mêmes résultats avec la commande grep.
Rechercher un fichier et exécuter des commandes
À l’occasion, vous devez trouver le fichier et exécuter un processus tel que la suppression, la modification des autorisations, etc., vous pouvez utiliser l’option -exec.
find /var/www/html -name "wp-config.php" -exec chmod 0644 {} ;
Options de recherche utiles pour trouver un fichier
Par défaut, recherchez ignorer les liens symboliques, utilisez -L pour suivre les liens symboliques.
-maxdepth X
– Recherchez le répertoire actuel avec tous les sous-répertoires X niveaux de profondeur.-iname
– Ignorer la casse du texte.-not
– Ne produit que les résultats qui ne correspondent pas au cas de test
Conclusion
Dans ce tutoriel, nous avons appris à trouver un fichier sous Linux en utilisant la ligne de commande. La structure Linux permet de trouver efficacement le fichier en recherchant dans les répertoires et sous-répertoires.
Merci d’avoir lu, s’il vous plaît laissez-nous savoir vos commentaires et suggestions dans la section des commentaires.