File superiori a 1 GB e precedenti a 6 mesi


20

Voglio trovare file di dimensioni superiori a 1 GB e più vecchi di 6 mesi nell'intero server. Come scrivere un comando per questo?

Risposte:


37

Utilizzare find:

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

-mtimesignifica cercare tempi di modifica superiori a 180 giorni (+180). E il -sizeparametro cerca file superiori a 1 GB.


2
Si noti che nelle findimplementazioni in cui Gè supportato quel suffisso, significa GiB (1073741824 byte), non GB (1000000000). Portabilmente, userestifind /path -mtime +180 -size +1073741824c
Stéphane Chazelas

1
se vuoi evitare di vedere errori tra l'elenco di file come questi: find: a.txt :Permission deniedti suggerisco di aggiungere questo 2>/dev/nullispirato da questo commento: unix.stackexchange.com/questions/42841/…
gmansour,

Puoi anche reindirizzare i risultati xargs ls -lhSper ordinarli per dimensione: find /path -mtime +180 -size +1G | xargs ls -lhS
user553965

@ user553965 Il tuo comando non funzionerà. Che cosa è effettivamente necessario per Ordina per dimensioni è: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Nota per i neofiti: il reindirizzamento di 2>/dev/nullelimina solo gli permission deniederrori che appariranno inevitabilmente durante la ricerca da root. Per ordinare in base alla data dell'ultima modifica, utilizzare ls -lhtinvece e aggiungendo rai lscomandi, ad esempio ls -lhSr, si invertiranno i risultati (dal più piccolo al più grande / dal più vecchio al più recente).
mattst

6

find / -size +1G -mtime +180 -type f -print

Ecco la spiegazione dell'opzione di comando per opzione: a partire dalla directory principale, trova tutti i file più grandi di 1 GB, modificati più di 180 giorni fa, che sono di tipo "file" e stampa il loro percorso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.