Find

De Linuxmemo.

(Différences entre les versions)
(Astuces)
(Astuces)
 
(2 versions intermédiaires masquées)
Ligne 50 : Ligne 50 :
  gigabytes=$((bytes / 2**30))
  gigabytes=$((bytes / 2**30))
-
*purge des sauvegarde de plus de 30 jours
+
*purge des sauvegardes de plus de 30 jours
-
  find . -maxdepth 1 -and -mtime +30 -and -type d -and ! -iregex "main" -exec rm -rf {} \;
+
  find . -maxdepth 1 -and -mtime +30 -and -type d -and ! -iname "main" -execdir rm -rf {} \;

Version actuelle en date du 30 mai 2014 à 12:40


find [options] [starting path] [expression]
find . -type d -iname thumbs

[modifier] options remarquables

-maxdepth 1

limite a partée 1 au répertoire courant (non récursif)

-iname "*.gz" 

recherche nominative insensible a la caste

-mtime +30

plus vieux de 30 jour (24h*30)

-exec rm -f {} \; 

suppression du résultat

-execdir cp {} /home/ \;
find . -iname "*.mkv" -execdir cp -v {} /mnt/popcorn/Video/MKV/ \;

Using both basename and full path in find -exec for cp

[modifier] Expression

  • Force precedence
( expr )
  • négation
! expr
-not expr (not POSIX compliant.)
  • and
expr1 expr2
expr1 -a expr2
expr1 -and expr2 (not POSIX compliant.)
  • or
expr1 -or expr2
expr1 -o expr2 (not POSIX compliant.)
  • liste
expr1 , expr2

[modifier] Astuces

  • somme de taille de fichiers
find . -iname "*.mkv" | xargs stat -c %s | awk '{a+=$1;print a}' |tail -1
  • Calcul de conversion:
kilobytes=$((bytes / 2**10))
megabytes=$((bytes / 2**20))
gigabytes=$((bytes / 2**30))
  • purge des sauvegardes de plus de 30 jours
find . -maxdepth 1 -and -mtime +30 -and -type d -and ! -iname "main" -execdir rm -rf {} \;
Outils personnels