Outils pour utilisateurs

Outils du site


linux:find (lu 59938 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:find [25-01-2014 14:34]
edmc73
linux:find [07-05-2023 20:23] (Version actuelle)
edmc73 [Commande utile]
Ligne 3: Ligne 3:
 ===== Commande utile ===== ===== Commande utile =====
  
-Permet d'afficher les fichier modifiés il y a moins d'un jour trié par ordre décroissant de leur taille+Permet d'afficher les fichier modifiés il y a moins d'un jour trié par ordre décroissant de leur taille (utile dans le cas d'un piratage de moins de 24h pour voir les fichiers éventuellement modifiés)
   find -mtime -1 -type f -exec ls -sh {} \; | sort -hr   find -mtime -1 -type f -exec ls -sh {} \; | sort -hr
 +
 +Dans la vie de tous les jours, on cherche un fichier avec un morceau de nom sans savoir si il y a des majuscules ou non
 +  find /home/user/Documents -iname '*compta*'
 +
 +En installant le paquet **mlocate** (variante améliorée de l'ancien locate) vous pouvez trouver plus rapidement un fichier qu'avec la commande **find** puisque celui-ci gère une base de données de tous les fichiers du système. Exemple pour la même recherche.
 +  locate compta
 +
 +A la différence de **find** qui fait une recherche en temps réel, **locate** se met à jour une fois par jour via la commande **updatedb**
 +
 +__ Purger ses vieux fichiers de plus de 10 jours qui commence par 'export' (par exemple) __
 +
 +Vérifier avant de supprimer
 +  find /home/moi/backup -type f -name 'export*' -mtime +10
 +
 +Ajouter simplement **-delete** pour supprimer 
 +  find /home/moi/backup -type f -name 'export*' -mtime +10 -delete
 +
 +Un autre exemple pour supprimer tous les liens symboliques à supprimer dans des répertoires en se limitant à une recherche dans 2 sous-dossiers
 +  find daily.* -maxdepth 2 -type l -delete
 +
 +
 +Pour les anciennes version
 +
 +Vérifier avant de supprimer
 +  find /home/moi/backup -type f -name 'export*' -mtime +10 -exec echo "rm -f {}" \;
 +Passer à l'action pour de vrai
 +  find /home/moi/backup -type f -name 'export*' -mtime +10 -exec rm -f {} \;
 +
 +
 +
  
 ===== Utilisation de la commande find ===== ===== Utilisation de la commande find =====
Ligne 28: Ligne 58:
 | -group | Recherche par appartenance à un groupe.      | | -group | Recherche par appartenance à un groupe.      |
 | -size  | Recherche par taille de fichier.             | | -size  | Recherche par taille de fichier.             |
-| -atime | Recherche par date de dernier accès.         +| -atime | Recherche par date de dernier accès en jours.| 
-| -mtime | Recherche par date de dernière modification. | +| -mtime | Recherche par date de dernière modification en jours. | 
-| -ctime | Recherche par date de création.              |+| -ctime | Recherche par date de création en jours.              | 
 +| -amin  | Recherche par date de dernier accès en minutes.| 
 +| -mmin  | Recherche par date de dernière modification en minutes. | 
 +| -cmin  | Recherche par date de création en minutes.              |
 | -perm  | Recherche par autorisations d'accès.         | | -perm  | Recherche par autorisations d'accès.         |
 | -links | Recherche par nombre de liens au fichier.    | | -links | Recherche par nombre de liens au fichier.    |
Ligne 83: Ligne 116:
      
 affiche tous les fichiers se terminant par ''.tex'' ou ''.dvi''. affiche tous les fichiers se terminant par ''.tex'' ou ''.dvi''.
 +
 +.
 +
 +
 +On peut aussi afficher les infos que l'on veut avec printf
 +  find . -printf '%f %u:%g %a'
 +Affichera le nom du fichier seulement suivi du user:group et dernière date d'accès
 +
 +Si on veux savoir combien de fichiers sont utilisés par utilisateur
 +  find . -printf '%u' | sort | uniq -c
 +  
 +===== Alternatives =====
 +
 +**find** est récursif. Si vous voulez supprimer une liste de fichier dans un seul répertoire et donc sans supprimer les fichiers des sous répertoires, utilisez la commande **xargs**
 +
 +  ls *fichier*.txt | xargs rm
 +
 +
 +Sinon utilisez l'option ''-maxdepth''
 +  find . -maxdepth 1 -type f
  
linux/find.1390656855.txt.gz · Dernière modification: 25-01-2014 14:34 de edmc73