Quiero encontrar archivos de más de 1 GB y más de 6 meses en todo el servidor. ¿Cómo escribir un comando para esto?
shell-script
command-line
files
find
shinek
fuente
fuente
find
implementaciones dondeG
se admite ese sufijo, significa GiB (1073741824 bytes), no GB (1000000000). Portablemente, usaríasfind /path -mtime +180 -size +1073741824c
find: a.txt :Permission denied
sugiero agregar esto2>/dev/null
inspirado en este comentario: unix.stackexchange.com/questions/42841/…xargs ls -lhS
para ordenarlos por tamaño:find /path -mtime +180 -size +1G | xargs ls -lhS
find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS
. Nota para los novatos: la redirección de2>/dev/null
simplemente elimina lospermission denied
errores que inevitablemente aparecerán al buscar desde la raíz. Para ordenar por fecha de última modificación, usels -lht
en su lugar y agreguer
a losls
comandos, por ejemplols -lhSr
, revertirá los resultados (más pequeño a más grande / más antiguo a más nuevo).find / -size +1G -mtime +180 -type f -print
Aquí está la explicación del comando opción por opción: a partir del directorio raíz, encuentra todos los archivos de más de 1 Gb, modificados hace más de 180 días, que son del tipo "archivo" e imprime su ruta.
fuente