La commande find
est un outil très puissant sous Linux qui permet de rechercher des fichiers et des répertoires selon différents critères. Ce tutoriel vous présente 30 commandes find
pratiques pour maximiser votre productivité. Pour chaque exemple, nous utilisons l’utilisateur geecniger et la machine ubuntu. Toutes les recherches se font dans le répertoire /home/geecniger/
.
Conseil : Pour faciliter la copie des commandes, cliquez sur le bouton de copie à côté de chaque commande.
1. Rechercher un fichier par nom
Pour trouver un fichier spécifique nommé geec.txt
, utilisez :
find /home/geecniger/ -name "geec.txt"
2. Recherche insensible à la casse
Cette commande trouve le fichier geec.txt
ou GEEC.txt
sans faire de distinction entre majuscule et minuscule.
find /home/geecniger/ -iname "geec.txt"
3. Trouver tous les fichiers avec une extension spécifique
Pour rechercher tous les fichiers .txt
dans le répertoire de l’utilisateur geecniger
, utilisez :
find /home/geecniger/ -name "*.txt"
4. Rechercher des fichiers par taille
Cette commande trouve les fichiers de plus de 100 Mo dans le répertoire :
find /home/geecniger/ -size +100M
5. Trouver des fichiers plus petits qu’une taille donnée
Pour rechercher des fichiers de moins de 1 Ko :
find /home/geecniger/ -size -1k
6. Rechercher des fichiers modifiés il y a plus de 7 jours
Cette commande trouve les fichiers modifiés il y a plus de 7 jours :
find /home/geecniger/ -mtime +7
7. Trouver des fichiers modifiés récemment (dernières 24h)
Pour trouver les fichiers récemment modifiés :
find /home/geecniger/ -mtime -1
8. Rechercher des fichiers créés il y a plus de 30 jours
Pour rechercher des fichiers créés il y a plus de 30 jours :
find /home/geecniger/ -ctime +30
9. Rechercher des fichiers par permissions
Pour rechercher des fichiers avec des permissions spécifiques, comme 777
:
find /home/geecniger/ -perm 777
10. Rechercher des fichiers appartenant à un utilisateur spécifique
Pour rechercher tous les fichiers appartenant à l’utilisateur geecniger
:
find /home/geecniger/ -user geecniger
11. Trouver des fichiers vides
Pour rechercher des fichiers vides :
find /home/geecniger/ -empty
12. Trouver des fichiers exécutables uniquement
Pour rechercher uniquement les fichiers exécutables :
find /home/geecniger/ -executable
13. Rechercher uniquement des répertoires
Pour rechercher des répertoires uniquement :
find /home/geecniger/ -type d
14. Rechercher uniquement des fichiers
Cette commande ne recherchera que des fichiers (pas de répertoires) :
find /home/geecniger/ -type f
15. Supprimer des fichiers trouvés
Pour supprimer les fichiers .tmp
trouvés :
find /home/geecniger/ -name "*.tmp" -delete
16. Exécuter une commande sur chaque fichier trouvé
Cette commande supprime tous les fichiers .txt
trouvés :
find /home/geecniger/ -name "*.txt" -exec rm {} \;
17. Rechercher des fichiers accédés récemment
Pour rechercher les fichiers accédés dans les 10 derniers jours :
find /home/geecniger/ -atime -10
18. Limiter la profondeur de recherche
Pour limiter la recherche au répertoire courant :
find /home/geecniger/ -maxdepth 1 -name "*.log"
19. Rechercher des fichiers modifiés en minutes
Pour rechercher des fichiers modifiés au cours des 60 dernières minutes :
find /home/geecniger/ -mmin -60
20. Rechercher des fichiers cachés
Cette commande trouve tous les fichiers cachés :
find /home/geecniger/ -name ".*"
21. Rechercher des fichiers modifiés par un programme
Pour rechercher des fichiers modifiés par un programme et les lister :
find /home/geecniger/ -mmin -60 -exec ls -lh {} \;
22. Rechercher des fichiers avec des liens symboliques cassés
Cette commande identifie les liens symboliques cassés :
find /home/geecniger/ -xtype l
23. Rechercher et lister les fichiers du propriétaire root
Pour rechercher tous les fichiers appartenant à root :
find / -user root
24. Rechercher des fichiers d’un type spécifique et exclure certains répertoires
Cette commande exclut certains répertoires lors de la recherche :
find /home/geecniger/ -name "*.log" -not -path "/home/geecniger/exclude/*"
25. Rechercher des fichiers modifiés dans les X derniers jours et les supprimer
Pour rechercher des fichiers modifiés dans les 30 derniers jours et les supprimer :
find /home/geecniger/ -mtime -30 -exec rm {} \;
26. Rechercher des fichiers avec des noms correspondant à un motif regex
Utilisez cette commande pour rechercher des fichiers correspondant à une expression régulière :
find /home/geecniger/ -regex ".*\.(log|txt)$"
27. Rechercher des fichiers d’un certain propriétaire et d’une certaine taille
Pour rechercher des fichiers appartenant à geecniger
et de plus de 50 Mo :
find /home/geecniger/ -user geecniger -size +50M
28. Trouver les fichiers ayant des permissions différentes de 644
Pour rechercher des fichiers dont les permissions sont différentes de 644 :
find /home/geecniger/ ! -perm 644
29. Trouver des fichiers modifiés par un certain programme (utilisé avec -exec)
Pour rechercher des fichiers modifiés récemment et exécuter une commande dessus :
find /home/geecniger/ -mmin -60 -exec ls -lh {} \;
30. Rechercher des fichiers dans plusieurs répertoires
Pour rechercher des fichiers .php
dans plusieurs répertoires :
find /home/geecniger/ /var/www/ -name "*.php"
Ces 30 astuces vous permettront de tirer le meilleur parti de la commande find sous Linux. De la recherche basique à l’exécution de commandes automatisées, cet outil vous fera gagner du temps et améliorera votre productivité.