Je souhaite rechercher des fichiers supérieurs à 1 Go et antérieurs à 6 mois sur l'ensemble du serveur. Comment écrire une commande pour cela?
shell-script
command-line
files
find
shinek
la source
la source
find
implémentations où ceG
suffixe est pris en charge, cela signifie GiB (1073741824 octets), pas GB (1000000000). Portablement, vous utiliseriezfind /path -mtime +180 -size +1073741824c
find: a.txt :Permission denied
je suggère d'ajouter ceci2>/dev/null
inspiré de ce commentaire: unix.stackexchange.com/questions/42841/…xargs ls -lhS
pour les trier par taille:find /path -mtime +180 -size +1G | xargs ls -lhS
find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS
. Note aux débutants: La redirection de2>/dev/null
se débarrasse simplement despermission denied
erreurs qui apparaîtront inévitablement lors de la recherche à partir de la racine. Pour trier par date de dernière modification, utilisezls -lht
plutôt et ajoutezr
auxls
commandes, par exemplels -lhSr
, inversera les résultats (du plus petit au plus grand / du plus ancien au plus récent).find / -size +1G -mtime +180 -type f -print
Voici l'explication de la commande option par option: A partir du répertoire racine, il trouve tous les fichiers supérieurs à 1 Go, modifiés il y a plus de 180 jours, de type "fichier", et imprime leur chemin.
la source