Arquivos com mais de 1 GB e mais de 6 meses

20

Quero encontrar arquivos com mais de 1 GB e mais de 6 meses em todo o servidor. Como escrever um comando para isso?

shinek
fonte

Respostas:

37

Use find:

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

-mtimesignifica procurar tempos de modificação maiores que 180 dias (+180). E o -sizeparâmetro procura por arquivos maiores que 1 GB.

caos
fonte
2
Observe que nas findimplementações em que esse Gsufixo é suportado, significa GiB (1073741824 bytes), não GB (1000000000). Portably, você usariafind /path -mtime +180 -size +1073741824c
Stéphane Chazelas
1
se você quiser evitar erros na lista de arquivos como estes: find: a.txt :Permission deniedsugiro adicionar isso 2>/dev/nullinspirado neste comentário: unix.stackexchange.com/questions/42841/…
gmansour
Você também pode canalizar os resultados xargs ls -lhSpara classificá-los por tamanho: find /path -mtime +180 -size +1G | xargs ls -lhS
user553965 em 29/01
@ user553965 Seu comando não funcionará. O que é realmente necessário para ordenar por tamanho é: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Nota para iniciantes: O redirecionamento 2>/dev/nullapenas elimina os permission deniederros que aparecerão inevitavelmente ao pesquisar a partir do root. Para classificar pela data da última modificação, use ls -lhte adicione raos lscomandos, por exemplo ls -lhSr, reverterá os resultados (do menor para o maior / do mais antigo para o mais recente).
mattst 25/10
6

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

Aqui está a explicação da opção de comando por opção: A partir do diretório raiz, ele encontra todos os arquivos maiores que 1 Gb, modificados há mais de 180 dias atrás, do tipo "arquivo" e imprime o caminho.

dr01
fonte