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

findimplementaciones dondeGse admite ese sufijo, significa GiB (1073741824 bytes), no GB (1000000000). Portablemente, usaríasfind /path -mtime +180 -size +1073741824cfind: a.txt :Permission deniedsugiero agregar esto2>/dev/nullinspirado en este comentario: unix.stackexchange.com/questions/42841/…xargs ls -lhSpara ordenarlos por tamaño:find /path -mtime +180 -size +1G | xargs ls -lhSfind / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Nota para los novatos: la redirección de2>/dev/nullsimplemente elimina lospermission deniederrores que inevitablemente aparecerán al buscar desde la raíz. Para ordenar por fecha de última modificación, usels -lhten su lugar y agreguera loslscomandos, 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 -printAquí 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