miércoles, 15 de marzo de 2017

[Tip - Linux] - Buscar archivos por tamaño con find

Hay veces en las que necesitamos buscar archivos por su tamaño, ya sea porque tenemos problemas de espacio y necesitamos encontrar urgente algo grande que borrar, o porque no entendemos en donde se fue el espacio en disco e intuimos que es algun archivo de gran tamaño que dejamos perdido por algun lugar. Esos tipicos backups que hacemos para mover algo de lugar y despues el tar.gz queda perdido en alguna carpeta del filesystem.


 find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'


En el find anterior podemos tocar los parametros " . ", que busca en la carpeta en la que estamos parados, y en sus subcarpetas y el parametro "+50000k", que significa algo asi como "mayores a 50 megas".

Espero que les sirva, otras formas de ver a donde se nos esta yendo el espacio del disco pueden ser:

du -h . --max-depth=1

Sin ir navegando en las subcarpetas, este DU nos mostrara cuando espacio estan ocupando cada uno de los nodos que se desprenden de donde estemos parados.

Y si nuestro problema de es de iNodos, podemos hacer un:

find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" $dir; find $dir -type f | wc -l; done

Como con el DU, este FIND nos va a mostrar cuantos nodos se esta consumiendo cada subdirectorio de donde estemos parados.

Si necesitamos buscar todos los archivos más antiguos que uno fecha, podemos hacer:

find /* -mtime +2

Y si queremos borrar automaticamente todos los archivos más antiguos que una fecha, podemos hacer:

find /tmp* -mtime +5 -exec rm -rf {} \;


Saludos.


Escrito por

Espero que les haya gustado, ¡y no se olviden de comentar o sugerir futuros temas! Mi Twitter: @ar_jorge1987



No hay comentarios. :

Publicar un comentario