40 meilleurs exemples de commande Find sous Linux

la commande Linux find est un outil puissant qui permet aux administrateurs système de localiser et de gérer des fichiers et des répertoires en fonction d’un large éventail de critères de recherche. Il peut trouver des répertoires et des fichiers par leur nom, leur type ou leur extension, leur taille, leurs autorisations, etc.

en plus de localiser des fichiers et des répertoires, la combinaison de la commandefind avec d’autres vous permet d’agir sur les résultats., L’ajout de l’option-exec permet aux administrateurs système d’exécuter des commandes externes et d’effectuer des actions telles que la copie, le déplacement, la suppression ou la modification des autorisations des fichiers correspondant aux critères spécifiés tels que la taille, le nom, etc.

dans cet article, nous allons commencer par expliquer les commandes de base de recherche Linux avec des exemples. Cela vous montrera comment trouver des fichiers et des répertoires. Nous vous montrerons ensuite comment utiliser l’option-exec pour agir sur les fichiers ou répertoires en fonction de leur taille, de leurs autorisations, etc.,

la syntaxe générale de la commande find est

find {path} {name -of-file or dir-to-search} {action-to-take}

où,

dans ce tutoriel, nous expliquerons comment localiser les fichiers et les répertoires correspondant aux modèles spécifiés. Nous verrons également comment effectuer des actions sur les fichiers ou répertoires localisés par la commande find. Le guide est basé sur Ubuntu mais est applicable à la plupart des distributions et versions Linux.

Rechercher des fichiers et des Répertoires

Rechercher des fichiers par nom ou l’extension

Pour rechercher un fichier spécifique, exécutez la commande suivante à partir de la racine (/)., La commande contient le nom exact du fichier que vous recherchez.

find . -name file22.txt

Sortie

./test/file22.txt./sales/file22.txt

Veuillez noter que les résultats inclure le chemin d’accès. Ceci est important si vous ne connaissez pas le répertoire où se trouve le fichier, ou lorsqu’il est dans plus d’un endroit.

Vous pouvez également rechercher le fichier dans un autre répertoire tout en restant à l’emplacement actuel. Dans ce cas, vous devez fournir le chemin du répertoire où vous souhaitez rechercher.,

find ./test -name file22.txt

recherche de fichiers spécifiques dans un autre répertoire

dans notre cas, nous rechercherons tous ceux commençant par le fichier letters dans le répertoire test.

find ./test -name file*

Sortie

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Recherche de fichiers par extension

Pour trouver un fichier sous Linux avec une certaine extension, l’ajouter à la commande.,

find . -name *.txt

Sortie

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Rechercher des fichiers et répertoires par nom

Utilisez la commande ci-dessous pour rechercher des fichiers et des répertoires commençant par les lettres qa. Dans notre ordinateur, nous avons le qatree.txt et qa.txt fichiers ainsi qu’un répertoire par le nom de qa.,

Si nous exécutez la commande;

find ./ -name "qa*"

Il renvoie le résultat suivant

./test/qatree.pdf./test/qa.txt./home/qa

La commande renvoie à la fois les fichiers et les répertoires correspondant aux critères de recherche. Pour rechercher des fichiers ou des répertoires, vous devez le spécifier dans la commande.

Rechercher des fichiers ou des répertoires

Pour les fichiers uniquement, utilisez la balise type f interrupteur.

les Fichiers uniquement

find ./ -type f -name "qa*"

Sortie

./test/qatree.pdf./test/qa.txt

seulement les Répertoires

Ajoutez la balise type d option pour localiser répertoires.,

find ./ -type d -name "qa*"

Sortie

./home/qa

casse trouver de la commande

Toutes les recherches avec des -name switch sont sensibles à la casse et ne donnera pas de résultats avec des lettres majuscules. Pour obtenir tous les cas, utilisez l’option-iname.

find ./ -iname "qa*"

Sortie

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Rechercher un fichier à partir de plusieurs répertoires

Pour trouver les fichiers dans des répertoires différents, ajouter leurs chemins dans la commande., Dans notre cas, nous allons vérifier dans le test et numeric répertoires.

find ./test ./numeric -name file22.txt -type f

Sortie

./test/file22.txt/root/numeric/file22.txt

Trouver plusieurs fichiers avec des extensions différentes de tous les répertoires

Vous pouvez utiliser la commande find pour localiser plusieurs fichiers qui partagent les différentes extensions *.doc, *.txt *.pdf, etc. Cela peut être fait séparément, une extension à la fois, ou en utilisant une seule commande qui inclut toutes les extensions souhaitées.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

sortie

Rechercher des fichiers contenant du texte

Parfois, vous souhaitez accéder à un fichier contenant un texte, mais ne me souviens pas de son nom de fichier ou un emplacement. Cette commande vous permet de trouver tous les fichiers contenant votre texte cible.

pour rechercher tous les fichiers contenant le mot hyperconvergence”, utilisation;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Sortie

/root/numeric/hci/root/HCIP

L’option –i permet à la commande d’ignorer les cas et trouverez le texte en majuscule ou pas c’est à dire hyperconvergence, Hyperconvergence , etc.,

Pour rechercher les fichiers dans un répertoire spécifique, il suffit de l’ajouter à la commande

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Sortie

./numeric/hci

Rechercher des Fichiers et des Répertoires en Fonction de la Taille

Vous pouvez trouver tous les fichiers ou répertoires qui sont plus petit, égal ou supérieur à une certaine taille, à l’intérieur d’une certaine plage ou vide. Utilisez le format de taille approprié en fonction du type de fichiers ou de répertoires que vous recherchez.,nd fichiers d’une certaine taille – égale à 30 Mo

pour rechercher trouver tous les fichiers de 30 Mo

find / -size 30M

trouver des fichiers plus grands qu’une taille spécifiée

find -size +2M

Sortie

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

rechercher des fichiers de moins de 10 Mo dans le répertoire courant

find . -type f -size -10M

rechercher des fichiers de tailles comprises entre 100 et 200 Mo

lorsque vous recherchez des fichiers dans une plage spécifique, par exemple entre 100 et 200 Mo

find / -size +100M -size -200M

rechercher 20 Ko

find / -type d -size +20k

recherchez les fichiers et répertoires vides.,

les Fichiers

find ./ -type f -size 0

ou

find ./ -type f –empty

Annuaires

find ./ -type d –empty

Rechercher des fichiers par l’âge ou la date de modification

Trouver des fichiers de plus de n jours

find /path/ -type f -name '*.txt' -mtime +8

Le -mtime +8 va chercher les txt fichiers qui sont âgés de plus de 8 jours.,

par date de modification

recherche des fichiers modifiés au cours des 17 dernières heures

find . -mtime -17 -type f 

recherche des répertoires modifiés au cours des 10 derniers jours

find . -mtime -10 -type d 

recherche des fichiers basés sur l’accès ou la modification

recherche Cela vous permet de voir les fichiers qui ont ou n’ont pas été consultés dans un délai déterminé.

pour voir les fichiers qui n’ont pas été consultés au cours des 10 derniers jours dans le répertoire personnel.,

find /home -atime +10

les Fichiers consultés exactement il y a 10 jours

find /home -atime 10

Consulté dans les 10 derniers jours

find /home -atime -10

Rechercher les fichiers modifiés dans les n derniers jours

Vous pouvez aussi chercher les fichiers dans le /home répertoire modifié dans les 10 derniers jours à l’aide de la commande;

find /home -mtime -10 

Rechercher les fichiers modifiés dans un délai spécifique.

par exemple, tous les fichiers modifiés il y a entre 6 et 15 jours dans le répertoire home.,

find /home -type f -mtime +6 -mtime -15

fichiers et répertoires consultés au cours des 10 dernières minutes

pour trouver les fichiers consultés au cours des 10 dernières minutes, utilisez l’option-amin.

find . -amin -10 -type f

Sortie

./.bash_history./.profileroot@ubuntu1804:~#

Répertoires accessibles dans les 10 dernières minutes

find . -amin -10 -type d

Trouver les fichiers qui correspondent à des autorisations spécifiques

Syntaxe

$ find -perm mode

Où est le mode d’autorisation qui est soit numérique, tels que 644, 655, 700, 777, etc, ou des lettres telles que le u=x, a=r+x, etc.,

Vous pouvez spécifier le mode de trois manières différentes.

  1. Sans préfixe lorsque vous souhaitez rechercher des fichiers avec exactement les autorisations spécifiées.
  2. Avec « - » pour les fichiers avec au moins l’autorisation spécifiée. Cela renvoie des fichiers avec les autorisations spécifiées ainsi que des autorisations supérieures supplémentaires.
  3. utiliser « /” nécessite de spécifier le propriétaire ou le groupe avec l’Autorisation du fichier.,

Rechercher des fichiers avec la permission 777

find -perm 777

Sortie

./file1

de Trouver des fichiers avec au moins 766
trouvez -perm -766

Sortie

./file2./file1

La commande recherche tous les fichiers dans lesquels l’

  • Le propriétaire du fichier a lire/écrire/exécuter autorisations.
  • Groupe dispose d’autorisations de lecture/écriture
  • d’Autres ont accès en lecture/écriture

en tant Que tel, il retourne deux fichiers qui répondent à ce critère fichier1 et fichier2., Les fichiers n’ont pas besoin d’avoir exactement le 766 autorisations et peut avoir d’autres aussi longtemps, mais doit avoir au moins le spécifié.

Rechercher des fichiers accessibles en écriture par le propriétaire

Nous allons maintenant utiliser le « /” à la recherche des fichiers accessibles en écriture par leur propriétaire, ou d’un groupe, ou d’autres.

find -perm /222../file2./file3./file1

ce qui précède recherche les fichiers qui sont inscriptibles par leur propriétaire ou leur groupe.
cela renvoie des fichiers qui sont inscriptibles par l’un ou l’autre mais pas nécessairement les deux. Pour voir les fichiers, où les deux ont des autorisations inscriptibles, utilisez le préfixe–.,

./file2./file1

Rechercher des fichiers appartenant à un utilisateur

Trouver tous les fichiers appartenant à Jack

find /home -user jack

Sortie

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Rechercher des fichiers spécifiques appartenant à un utilisateur

Rechercher tous les fichiers texte détenue par Jack

find /home -user jack -iname "*.txt"

Sortie

/home/jack/docs/file32.txt

Rechercher et lister les fichiers et répertoires avec leurs droits d’accès

find -name "*.conf" | ls -l

Sortie

Trouver et agir sur les résultats

Dans cette section, nous allons voir comment vous pouvez agir sur les fichiers qui correspondent au modèle spécifié dans la commande rechercher.,

rechercher des fichiers et modifier les autorisations

rechercher et modifier les autorisations de certains types de fichiers. Dans notre cas, nous allons travailler avec des fichiers PHP avec différentes autorisations comme indiqué ci-dessous.,

Nous allons maintenant rechercher tous les fichiers PHP (ci-dessus) et de remplacer leurs autorisations avec 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

La commande recherche les fichiers PHP dans la balise ver répertoire et définit ensuite la permission de 755 (rwxr-xr-x)

Résultats

Rechercher et modifier des autorisations de fichier et répertoire

Rechercher des fichiers avec les permissions 644 et les modifier pour avoir 655 autorisations

find . -type f -perm 644 -exec chmod 655 {} ;

Vous pouvez également rechercher les répertoires avec les permissions 644 et la remplacer par 755.,

find . -type d -perm 644

Sortie

./docs 

Le dossier docs a des permissions 644

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

Pour le mettre 755, nous run

find . -type d -perm 644 -exec chmod 755 {} ;

Maintenant, nous pouvons vérifier à nouveau pour voir exactement ce que 755

find . -type d -perm 755

Sortie
.
./docs

d’en haut, nous pouvons voir que les répertoires root et docs ont les autorisations 755.,

Ls –la commande donne les précisions suivantes

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Trouver et copier des fichiers ou des répertoires

Trouver et copier un fichier spécifique à un répertoire

La commande ci-dessous permettra de trouver le file22.txt fichier et le copier dans le ~/tmp/images répertoire.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

rechercher et copier un type de fichiers dans un répertoire

pour trouver des fichiers tels que des images avec jpg extension dans le répertoire courant et les copier dans un autre emplacement comme un dossier images, utilisez;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

echerchez et copiez tous les fichiers JPG dans le dossier

~/tmp/images.

Trouver et de copier un fichier à de nombreux répertoires

Trouver et copier un seul ou plusieurs répertoires.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Cela permettra de trouver le fichier hci fichier et le copier dans les trois répertoires de /tmp/dir1/ /tmp/dir2/ et $HOME/3/

Trouver et déplacer des fichiers vers un autre répertoire

Pour déplacer un fichier d’un répertoire à un autre., Pour déplacer la balise universal.php fichier;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

la Recherche et de déplacer des fichiers avec une extension donnée à un autre dossier

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Trouver certains fichiers et les déplacer à un autre dossier

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

La commande recherche tous les fichiers dont le nom commence par uni et avoir n’importe quelle extension. Il les déplace ensuite dans le répertoire /unifiles/

rechercher et déplacer des fichiers en fonction de l’âge

rechercher et déplacer des fichiers plus anciens que les jours spécifiés vers un emplacement différent tel que l’archive.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

cela recherchera les fichiers pdf de plus de 20 jours et les déplacera vers le répertoire backup1.,les fichiers et les répertoires

La syntaxe de recherche et suppression des fichiers ou des répertoires dans le répertoire courant est

find . -type f -name "file to delete" -exec rm -f {} ; pour supprimer uniquement les fichiers ou

find . -type d -name "dir-to-delete" -exec rm -rf {} ; pour supprimer seulement les répertoires

Trouver et supprimer les fichiers spécifiques à seulement

Pour trouver et supprimer les fichiers en commençant par til, utilisation;

find . -type f -name "til*" -exec rm {} ; 

Pour trouver et supprimer des répertoires de départ avec til

find . -type d -name "til*" -exec rm {} ;

Supprimer les fichiers et les répertoires

find . -name "til*" -exec rm -rf {} ; 

Cela permettra de supprimer les fichiers et les répertoires commençant par les lettres til.,

Supprimer par extension

ci-Dessous comment vous pouvez localiser et supprimer tous les txt fichiers dans le répertoire courant. Remplacer la balise txt extension bak, pdf ou tout autre que vous souhaitez supprimer.

find . -type f -name "*.txt" -exec rm -f {} ;

Si vous souhaitez que le système vous invite à confirmer avant de supprimer chaque fichier, ajoutez l’option-i comme ci-dessous.,

find . -type f -name "*.txt" -exec rm -i {} ;

Sortie

Par défaut, la balise -rm ne sera pas supprimer les répertoires et vous devez utiliser la balise –r option assure une suppression récursive. Cela garantit la suppression des répertoires vides et ceux contenant des fichiers. L’option-f force la suppression et est utilisée à la fois pour les fichiers et les répertoires.

rechercher et supprimer des fichiers de plus de n jours

rechercher et supprimer des fichiers de sauvegarde de plus de 20 jours dans le répertoire courant.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Cela va supprimer tous les .bak fichiers de plus de 20 jours.

Rechercher et supprimer des répertoires

Pour supprimer un répertoire nommé dir22

find . -type d -name dir22 -exec rm -rf {} ;

assurez-vous de faire correspondre le nom du répertoire cas ou utiliser la balise -iname option.

find . -type d -iname Dir22 -exec rm -rf {} ;

Enlève les deux Dir22 et dir22

Pour confirmer la suppression, l’utilisation de l’option-i.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Sortie
rm: supprimer le répertoire ‘./ Dir22′?, n
rm: supprimer le répertoire’./ dir22′? y

Dans notre cas, nous avons tapé n annuaire Dir22 qui ne sera pas supprimé et y de la dir22 qui va maintenant être retiré.

Trouver et supprimer les dossiers vides

Vous pouvez utiliser les commandes suivantes pour localiser les fichiers vides et de les supprimer automatiquement.

find ./ -type f -size 0 -exec rm -f {} ;

ou
trouver ./ -type f -taille 0 | xargs rm-f
ou
trouver .,/ -type f -taille 0 –supprimer

Trouver et supprimer les répertoires vides

Pour supprimer les répertoires vides, nous allons utiliser la balise d option.

find ./ -type d -empty -exec rmdir {} ;

Une autre alternative consiste à utiliser delete au lieu de remove.

find ./ -type d -empty -delete

veuillez noter que la suppression de fichiers système ou critiques de votre ordinateur peut endommager le système d’exploitation ou les applications ou entraîner la perte de vos données importantes.

Pour éviter les suppressions accidentelles, il est préférable d’utiliser un utilisateur non root compte., Aussi, assurez-vous que vous supprimez les bons fichiers qui ne sont pas utiles et que vous avez une sauvegarde de tous vos fichiers de données juste au cas où.

Quelle est la prochaine étape?

allez-y et essayez les commandes de recherche Linux ci-dessus dans votre laboratoire ou votre environnement hors PRODUCTION. Voyez si vous pouvez en utiliser pour automatiser le nettoyage du système de fichiers avec Crontab. Et, pour maîtriser Linux, consultez ce cours en ligne.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils