Étiquette : find

27 décembre 2015 /

Voici une petite astuce qui permet d’obtenir la liste des liens symboliques contenus dans un répertoire:

ls -F | grep @$ | awk -F@ '{print $1}'

La même chose mais cette fois de façon récursive:

find . -type l

30 novembre 2015 /

Pour compter récursivement le nombre de fichiers du répertoire recursivement:

find /home/starmate -type f | wc -l

Ça marche aussi pour les dossiers :

find /home/starmate -type d | wc -l

Pour compter récursivement le nombre de fichiers dans chaque dossier et sous dossier du répertoire:

find /home/starmate -type d | while read i; do ls $i | wc -l | tr -d \\n; echo " -> $i"; done | sort -n

Par proprietaire:

find /home/starmate -user starmate | wc -l


-name     Recherche par nom de fichier.
-type    Recherche par type de fichier.
-user    Recherche par propriétaire.
-group     Recherche par appartenance à un groupe.
-size     Recherche par taille de fichier.
-atime     Recherche par date de dernier accès.
-mtime     Recherche par date de dernière modification.
-ctime     Recherche par date de création.
-perm     Recherche par autorisations d'accès.
-links     Recherche par nombre de liens au fichier.

22 novembre 2015 /

J’ai rencontré cette petite erreur avec des répertoires contenant des millions de fichiers, qu’on vous demande de lister/supprimer, voici la solution la plus rapide.

find /chemin/repertoire -type f -name '*.log' | xargs rm -f

ou

find /chemin/repertoire -type f -name '*.log' -delete

ou encore :

find /chemin/repertoire -type f -name '*.log' -exec rm -rf {};

14 septembre 2015 /

Pour effacer tout le contenu d’un répertoire en épargnant un fichier:


cd repertoire
find . -maxdepth 1 -not -name fichier_a_conserver -exec rm -rf ‘{}’ \;

Pou effacer tout le contenu d’un dossier sauf les fichiers jpg:


cd dossier
find . -maxdepth 1 -not -name *.jpg -exec rm -rf ‘{}’ \;

3 août 2015 /

Pour supprimer tous les fichiers « .db » a partir du répertoire courant:

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

Pour supprimer tous les fichiers « .db » à partir de la racine en demandant une confirmation:

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

Pour supprimer tous les repertoires se terminant par « db » à partir du répertoire courant:

find . -type d -name "*db" -exec rm -rf {} \;