La recherche de fichiers est relativement facile lorsque vous utilisez une interface graphique. Mais dans certains environnements comme les serveurs sans interface graphique, vous devez rechercher des fichiers à l'aide de la ligne de commande.
Il existe une commande puissante sous Linux qui vous aide à rechercher des fichiers et des dossiers appelés find
. Dans cet article, nous discuterons de la find
commande avec quelques exemples.
Qu'est-ce que la commande find sous Linux ?
Le find
La commande vous permet de rechercher efficacement des fichiers, des dossiers et des périphériques de caractères et de blocs.
Ci-dessous la syntaxe de base du find
commande :
find /path/ -type f -name file-to-search
Où,
/path
est le chemin où le fichier doit se trouver. C'est le point de départ pour rechercher des fichiers. Le chemin peut également être/
ou.
qui représentent respectivement la racine et le répertoire courant.-type
représente les descripteurs de fichiers. Il peut s'agir de l'un des éléments ci-dessous :
f
– Fichier régulier tels que des fichiers texte, des images et des fichiers cachés.
d
– Répertoire . Ce sont les dossiers à l'étude.
l
– Lien symbolique . Les liens symboliques pointent vers des fichiers et sont similaires aux raccourcis.
c
– Appareils de personnage . Les fichiers utilisés pour accéder aux périphériques de caractères sont appelés fichiers de périphériques de caractères. Les pilotes communiquent avec les périphériques de caractères en envoyant et en recevant des caractères uniques (octets, octets). Les exemples incluent les claviers, les cartes son et la souris.
b
– Bloquer les appareils . Les fichiers utilisés pour accéder aux périphériques blocs sont appelés fichiers de périphérique bloc. Les pilotes communiquent avec les périphériques de bloc en envoyant et en recevant des blocs entiers de données. Les exemples incluent USB, CD-ROM
-name
est le nom du type de fichier que vous souhaitez rechercher.
Exemples de la commande find
Nous connaissons maintenant la syntaxe de find
commande, regardons quelques exemples.
Comment rechercher des fichiers par nom ou extension
Supposons que nous ayons besoin de trouver des fichiers contenant "style" dans leur nom. Nous allons utiliser cette commande :
find . -type f -name style*
Sortie
Supposons maintenant que nous voulions trouver des fichiers avec une extension particulière comme .html
. Nous allons modifier la commande comme ceci :
find . -type f -name *.html
Sortie
Comment rechercher des fichiers cachés
Les fichiers cachés sont représentés par un point au début du nom de fichier. Ils sont normalement cachés, mais peuvent être visualisés avec ls -a
dans le répertoire courant.
Nous pouvons modifier le find
comme indiqué ci-dessous pour rechercher des fichiers cachés.
find . -type f -name ".*"
Sortie
Comment rechercher les fichiers journaux et les fichiers de configuration
Les fichiers journaux ont généralement l'extension .log
, et nous pouvons les trouver comme ceci :
find . -type f -name "*.log"
Sortie
De même, nous pouvons rechercher des fichiers de configuration comme celui-ci :
find . -type f -name "*.conf"
Comment rechercher d'autres fichiers par type
Nous pouvons rechercher des fichiers de blocs de caractères en fournissant c
à -type
:
find / -type c
De même, les fichiers de bloc de périphérique peuvent être trouvés en utilisant b
:
find / -type b
Comment rechercher des répertoires
Dans l'exemple ci-dessous, nous trouvons les dossiers nommés lib
. Notez que nous utilisons -type d
.
find . -type d -name "lib*"
Sortie
💡 Astuce :on peut identifier les répertoires en regardant le d
indicateur dans la sortie de ls -lrt
.
Comment rechercher des fichiers par taille
Une utilisation incroyablement utile de la find
commande est de lister les fichiers en fonction d'une taille particulière.
find / -size +250MB
Les autres unités incluent :
G
:Gigaoctets.M
:Mégaoctets.K
:Kilooctetsb
:octets.
Remplacez simplement
find <directory> -type f -size +N<Unit Type>
Comment rechercher des fichiers par heure de modification
find /path -name "*.txt" -mtime -10
- -mtime +10 signifie que vous recherchez un fichier modifié il y a 10 jours.
- -mtime -10 signifie moins de 10 jours.
- -mtime 10 Si vous sautez + ou – cela signifie exactement 10 jours.
Voici le contenu de mon répertoire personnel :
Appliquons un exemple dans mon répertoire personnel.
find . -type f -name ".*" -mtime +10
Exemples pratiques de find
avec des scripts bash
Nous pouvons combiner find
avec rm
ou mv
pour créer des scripts bash significatifs qui peuvent être automatisés.
Disons que nous voulons créer un script qui déplace les fichiers journaux de plus de 7 jours vers un chemin de sauvegarde. À partir de là, il supprime les fichiers journaux de plus de 30 jours. Nous pouvons créer un script et le programmer avec cron
. Vous pouvez en savoir plus sur cron
emplois ici.
Voyons le script :
#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*
# move ESB01 logs to backup
find /logs/esb01/audit -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;
# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30 -exec rm {} \;
Notez que nous utilisons exec
avec find
. En gros, exec
exécute la commande fournie ( mv
et rm
dans notre cas). {}
est l'espace réservé qui contient les résultats de la commande. Enfin, nous fournissons le délimiteur ;
. Comme nous ne voulons pas que le shell interprète le point-virgule, nous l'échappons avec \
.
Le script partagé est très utile pour archiver et supprimer les journaux.
Conclusion
Dans cet article, nous avons étudié le find
commande en détail et appris à rechercher des fichiers par nom, type, taille et heure de modification.
J'espère que vous avez trouvé ce tutoriel utile.
Partagez vos impressions sur Twitter !
Vous pouvez lire mes autres articles ici.
Ressources :images de bannières tirées d'illustrations Office réalisées par Storyset et Canva.