Como buscar archivos de gran tamaño en GNU/Linux
|Algunas veces observamos en nuestro equipo que tenemos muy poco espacio en disco, y por mas que buscamos los archivos que ocupan tanto espacio, no los encontramos.
Para solucionar esto en nuestro GNU/Linux, podemos hacer uso del comando find, con su amplia gama de parametros y combinarlo con awk para ver los resultados de forma mar organizada.. la sintaxis debe ser asi:
find $lugar -type f -size +20000k -exec ls -lah {} \; | awk '{ print $9 ": " $5 }'
donde:
$lugar -> Es la carpeta donde se desea buscar.
+20000k -> Buscar archivos con tamaño mayor de 20MB
Ahora, miremos un ejemplo:
find /home/epsilon -type f -size +50000k -exec ls -lah {} \; | awk ‘{ print $9 «: » $5 }’
Con esta linea, buscamos en mi home archivos que tengan un tamaño mayor a 50MB incluyendo los archivos ocultos..
4 comentarios
Buenas tardes,
A mi al ejecutar el comando:
find -type f -size +50000k -exec ls -lah {} ; | awk ‘{ print $9 “: ” $5 }’
Me indica:
bash: error sintáctico cerca del elemento inesperado `|’
Por qué puede ser
Un saludo.
Gracias
Perdón en mi comentario anterior me ha faltado poner la ruta donde algo la busqueda. Pero el resultado del comando es ciertamente el posteado,
Gracias.
Caballero, elemental esta clase de comandos para el día a día de los Sysadmin. Creo que debes crear un nuevo TAG para esta categoría. Saludos!!
Sonytra, tal vez ya hayas dado con la razón por la cual te da error cuando intentas correr el comando debido a el post tiene un par de meses, pero solo por si acaso, el comando de ejemplo tiene un error y es la falta del backslash después de los corchetes. Usando el mismo ejemplo que tu pusiste, quedaría de la siguiente manera:
find -type f -size +50000k -exec ls -lah {} \; | awk ‘{ print $9 “: ” $5 }’
Por otro lado, creo que sería mas conveniente imprimir primero el tamaño del archivo y luego el nombre del archivo separados por uno o dos espacios:
find -type f -size +50000k -exec ls -lah {} \; | awk ‘{ print $5 “ ” $8 }’
Espero sirva de algo. Saludos.