Comment trouver des fichiers sous Linux en utilisant la ligne de commande

find est une commande pour filtrer récursivement les objets dans le système de fichiers sur la base d’un mécanisme conditionnel simple. Utiliser find pour rechercher un fichier ou un répertoire sur votre système de fichiers. En utilisant l’indicateur-exec, les fichiers peuvent être trouvés et immédiatement traités dans la même commande.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., L’exemple suivant recherche *.err fichiers dans le /home/username/ répertoire et tous les sous-répertoires:

find /home/username/ -name "*.err"

Vous devriez voir un résultat similaire dans votre console:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Linux Courants Trouver des Commandes et la Syntaxe

Le find commande prend généralement la forme suivante:

find options starting/path expression
  • Le options attribut de contrôle le comportement et la méthode d’optimisation de la balise find processus.,
  • Le starting/path attribut définit le répertoire de niveau supérieur où find commence filtrage.
  • l’attributexpression contrôle les tests qui recherchent la hiérarchie des répertoires pour produire la sortie.

Trouver un Fichier sous Linux en Utilisant le nom de fichier

Pour trouver un fichier en utilisant le nom de fichier, utilisez la syntaxe find -name filename. L’omission du chemin recherche le fichier sur l’ensemble du disque., Par exemple, vous pouvez trouver un fichier nommé example.err située dans la /home/username répertoire avec la commande suivante:

find -name example.err

Vous devriez voir un résultat similaire:

 ./username/example.err

Rechercher un Fichier dans Votre Répertoire Courant à l’Aide de la Commande Rechercher

jetez un oeil à l’exemple de structure de répertoires et de fichiers. Ils sont mentionnés dans les exemples de ce guide.,vous voulez trouver le fichier example.err dans le répertoire ou l’un de ses sous-répertoires, vous pouvez lancer la commande suivante:

find . -name example.err

votre sortie ressemble à ce qui suit:

 ./example.err./directory_1/example.err

la sortie reflète directory_1 structure du répertoire:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

rechercher des fichiers image sous Linux en utilisant la ligne de commande

référençant la structure du fichier dans la section précédente, il y a une image nommée image01.png qui se trouve>)s de la structure du répertoire.,

Pour trouver le fichier image01.png, exécutez la commande suivante: find commande qui localise tous les .png fichiers stockés à l’intérieur de la balise / répertoire.

find -name *.png

Vous devriez voir un résultat similaire:

 ./image01.png

Changer le type de fichier d’image et de regarder pour tout .jpg fichiers dans le répertoire racine (/):

find -name *.jpg

La sortie ressemble à l’exemple., Reportez-vous à l’exemple de structure de répertoire dans la section précédente pour afficher l’emplacement du fichier.

 ./web_files/unnamed.jpg

Trouver un Fichier Vide dans Votre Répertoire à l’Aide de la Ligne de Commande

Pour trouver un fichier vide dans votre répertoire à l’aide de la ligne de commande, exécutez la commande suivante:

find . -type f -empty

Si aucune sortie n’est retourné, alors il n’y a pas un fichier vide dans votre répertoire courant.

Options et optimisations pour trouver des fichiers sous Linux en utilisant la ligne de commande

la configuration par défaut pourfind ignoressymbolic links., Si vous souhaitez que find suive et renvoie des liens symboliques, ajoutez l’option -L à la commande, comme indiqué ci-dessous:

find -O3 -L /var/www/ -name "*.html"

Cette commande active le niveau d’optimisation maximum (-O3) et permet à find de suivre des liens symboliques (-L). find recherche dans toute l’arborescence des répertoires sous /var/www/ les fichiers qui se terminent par .html.,

find optimise sa stratégie de filtrage pour augmenter les performances. Trois sélectionnables par l’utilisateur, l’optimisation des niveaux spécifiés comme des -O1, -O2 et -O3. L’optimisation -O1 est la valeur par défaut et force find à filtrer en fonction du nom de fichier avant d’exécuter tous les autres tests.,

L’optimisation au niveau -O2donne la priorité aux filtres de nom de fichier, comme dans -O1, puis exécute tous les filtres de type de fichier avant de procéder à d’autres conditions plus gourmandes en ressources. Level -O3 l’optimisation permet à find d’effectuer l’optimisation la plus sévère et de réorganiser tous les tests en fonction de leur dépense relative et de la probabilité de leur succès.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Autoriser find automatiquement re-commander la recherche est basée sur l’utilisation efficace des ressources et de leur probabilité. de succès
-maxdepth X Recherche de répertoire courant ainsi que tous les sous-répertoires X niveaux de profondeur.
-iname Recherche sans tenir compte de la casse du texte.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

rechercher des fichiers sous Linux par heure de Modification à l’aide de la ligne de commande

la commandefind peut filtrer une hiérarchie de répertoires en fonction de la date, Par exemple, la commande suivante trouve tout fichier avec l’extension .err qui a été modifié au cours des 7 derniers jours:

find / -name "*err" -mtime -7

l’exemple de commande renvoie la sortie suivante:

utilisez Grep pour rechercher des fichiers sous Linux en utilisant la ligne de la commande »>est uniquement capable de filtrer la hiérarchie des répertoires en fonction du nom et des métadonnées d’un fichier. Si vous devez rechercher en fonction du contenu du fichier, utilisez un outil commegrep., Considérons l’exemple suivant:

find . -type f -exec grep "test" '{}' \; -print

Cette commande recherches chaque objet dans la hiérarchie des répertoires (.) qui est un fichier (-type f), puis exécute la commande grep "test" pour chaque fichier qui remplit les conditions. Les fichiers qui correspondent sont imprimés à l’écran (-print). Les accolades ({}) sont un espace réservé pour les résultats de recherche de correspondance., Les{} sont placés entre guillemets simples (') pour éviter de remettre àgrep un nom de fichier mal formé. La commande -exec est terminée par un point-virgule (;), qui doit être échappé (\;) pour éviter l’interprétation par le shell.

Le fichier utilisé dans l’exemple (example.err) a du texte à l’intérieur qui dit « test”., Lorsque vous exécutez l’exemple de commande, vous voyez une sortie similaire:

Grep a identifié chaque fichier dans le répertoire de travail actuel qui contient la chaîne « test”.,

Remarque

avant l’implémentation de la commandefind de l’option-exec, vous pouvez générer une sortie similaire à l’exemple ci-dessus en utilisant la commandexargs:

find . -type f -print | xargs grep "test"

traiter et rechercher des fichiers à l’aide de la commande find sous Linux

l’option-exec exécute des commandes sur chaque objet qui correspond àfind expression., Considérons l’exemple suivant:

find . -name "example.err" -exec chmod o+r '{}' \;

C’filtres de chaque objet dans la hiérarchie (.) pour les fichiers nommés rc.conf et exécute le chmod o+r commande pour modifier les autorisations de fichier de la balise find commande de résultats.

l’exemple de commande exécute et exécute l’option-execdans le répertoire racine du processusfind. Utilisez -execdir pour exécuter la commande spécifiée dans le répertoire où réside la correspondance., Cela peut atténuer les problèmes de sécurité et produire de meilleures performances pour certaines opérations.

Le -exec ou -execdir options exécuter sans plus d’indications. Si vous préférez être invité avant que des mesures soient prises, remplacez -exec par -ok ou -execdir par -okdir.

Comment trouver et supprimer des fichiers en utilisant la ligne de commande Linux

attention

utilisez cette option avec une extrême prudence.,

Ajout de l’option -delete à la fin d’un match expression de supprimer tous les fichiers qui correspondent. Utilisez cette option lorsque vous êtes certains que les résultats ne concordent avec les fichiers que vous souhaitez supprimer.

Dans l’exemple ci-dessous, find localise de manière récursive tous les fichiers dans la hiérarchie de départ dans le répertoire courant et supprime tous les fichiers qui se terminent avec le .err poste:

find . -name "*.err" -delete

Encore quelques questions?,

Rejoignez notre communauté et postez vos questions à d’autres passionnés de Linode et Linux pour vous aider.

Questions Connexes:

Laisser un commentaire

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