Dans cet article, nous examinerons le Linux find
commande et comment rechercher et trouver des fichiers avec différents attributs.
Commande de recherche Linux
Le Linux find
La commande est un outil puissant intégré qui peut être utilisé pour localiser et gérer des fichiers et des répertoires en fonction d'un large éventail de critères de recherche.
Par exemple, nous pouvons trouver des fichiers par leur nom, extension, taille, autorisations, etc. Nous pouvons également utiliser le find
commande pour rechercher un texte particulier dans un fichier dont nous ne connaissons pas le nom.
Voyons quelques utilisations du find
commande avec des exemples :
Rechercher un fichier par nom
Si vous connaissez le nom d'un fichier mais que vous ne vous souvenez pas du répertoire dans lequel il se trouve, vous pouvez utiliser la commande suivante à partir du répertoire racine :
find . -name sales.csv
Exemple de sortie :
./accounts/sales.csv
Rechercher un fichier spécifique dans un répertoire
Si vous souhaitez rechercher des fichiers spécifiques dans un répertoire, nous pouvons utiliser :
find ./test -name testCases*
Exemple de sortie :
./test/testCases10.txt
./test/testCasesPassed.txt
./test/testCasesFailed.log
Dans le cas ci-dessus, nous recherchons uniquement dans le répertoire "./test".
Rechercher des fichiers par extension
Pour rechercher et trouver des fichiers avec une certaine extension, nous utilisons :
find . -name *.jpg
Exemple de sortie :
./test/results/failedTests.jpg
./test/project.jpg
./home/profile_pic.jpg
./tmp/cute-cats.jpg
Rechercher des fichiers ou des répertoires avec certains noms
Pour trouver uniquement les fichiers, nous devons utiliser le -f
choix :
find ./ -type f -name "results*"
Exemple de sortie :
./test/results_latest.log
./test/results_archive.pdf
Pour trouver uniquement les répertoires, nous devons utiliser le -d
choix :
find ./ -type d -name "results*"
Exemple de sortie :
./test/results
Rechercher des fichiers dans plusieurs répertoires
Si vous souhaitez rechercher et répertorier tous les fichiers portant un nom donné dans plusieurs répertoires, vous pouvez soit lancer la recherche dans le dossier racine, soit, si vous connaissez les répertoires, vous pouvez les spécifier.
Exemple :
find ./test ./logs -name failed*.* -type f
Exemple de sortie :
./test/failed_tests.txt
./logs/failed_tests.log
Rechercher des fichiers contenant un certain texte
Parfois, vous voulez trouver un fichier et vous ne connaissez pas son nom, mais vous savez qu'il contient un certain texte.
Vous pouvez utiliser :
find ./test -type f -exec grep -l -i "login_scenarios" {} ;
Ici, le -i
est utilisée pour ignorer la casse, donc Login_Scenarios et login_scenarios seront tous les deux trouvés.
Rechercher des fichiers par taille
Nous pouvons même trouver des fichiers de différentes tailles. Les options de taille sont :
c
octetsk
kilo-octetsM
MégaoctetsG
Gigaoctets
Par exemple pour trouver des fichiers sur une taille exacte on utilise :
find / -size 10M
Et pour trouver des fichiers qui dépassent une certaine taille, nous utilisons :
find ./test -size +2M
Ce qui précède trouvera tous les fichiers de plus de 2 Mo dans le dossier ./test.
Rechercher et supprimer des fichiers spécifiques
Pour rechercher et supprimer des fichiers spécifiques, nous utilisons :
find . -type f -name "temp*" -exec rm {} ;
Conclusion
Dans cet article, vous avez appris comment utiliser la commande linux find pour rechercher des fichiers en fonction du nom, de l'extension, de la taille et du type.