Fichiers de plus de 1 Go et de plus de 6 mois


20

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?

Réponses:


37

Utilisation find:

find /path -mtime +180 -size +1G

-mtimesignifie rechercher des délais de modification supérieurs à 180 jours (+180). Et le -sizeparamètre recherche les fichiers supérieurs à 1 Go.


2
Notez que dans les findimplémentations où ce Gsuffixe est pris en charge, cela signifie GiB (1073741824 octets), pas GB (1000000000). Portablement, vous utiliseriezfind /path -mtime +180 -size +1073741824c
Stéphane Chazelas

1
si vous voulez éviter de voir des erreurs entre la liste de fichiers comme ceux-ci: find: a.txt :Permission deniedje suggère d'ajouter ceci 2>/dev/nullinspiré de ce commentaire: unix.stackexchange.com/questions/42841/…
gmansour

Vous pouvez également diriger les résultats vers xargs ls -lhSpour les trier par taille: find /path -mtime +180 -size +1G | xargs ls -lhS
user553965

@ user553965 Votre commande ne fonctionnera pas. Ce qui est réellement nécessaire pour trier par taille est: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Note aux débutants: La redirection de 2>/dev/nullse débarrasse simplement des permission deniederreurs qui apparaîtront inévitablement lors de la recherche à partir de la racine. Pour trier par date de dernière modification, utilisez ls -lhtplutôt et ajoutez raux lscommandes, par exemple ls -lhSr, inversera les résultats (du plus petit au plus grand / du plus ancien au plus récent).
mattst

6

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.