Quero encontrar arquivos com mais de 1 GB e mais de 6 meses em todo o servidor. Como escrever um comando para isso?
shell-script
command-line
files
find
shinek
fonte
fonte
find
implementações em que esseG
sufixo é suportado, significa GiB (1073741824 bytes), não GB (1000000000). Portably, você usariafind /path -mtime +180 -size +1073741824c
find: a.txt :Permission denied
sugiro adicionar isso2>/dev/null
inspirado neste comentário: unix.stackexchange.com/questions/42841/…xargs ls -lhS
para classificá-los por tamanho:find /path -mtime +180 -size +1G | xargs ls -lhS
find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS
. Nota para iniciantes: O redirecionamento2>/dev/null
apenas elimina ospermission denied
erros que aparecerão inevitavelmente ao pesquisar a partir do root. Para classificar pela data da última modificação, usels -lht
e adicioner
aosls
comandos, por exemplols -lhSr
, reverterá os resultados (do menor para o maior / do mais antigo para o mais recente).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.
fonte