Cómo Encontrar Archivos por Tamaño Usando la Consola
Tags: linux, ubuntu, spanish
Published: 2019-11-25 21:18:26

A veces hay tantas cosas que hacer que algunas tareas básicas o sencillas se nos olvidan. Solemos darle más importancia a unas cosas por encima de otras por su peso o prioridad, sin embargo, hay tareas menores que permiten que esas grandes puedan ser resultas sin complicaciones.

Con lo anterior me refiero al mantenimiento que generalmente hay que hacerle a nuestros equipos electrónicos, electrodomésticos y más aparatos que usamos en el día a día. Así como a un vehículo hay que llevarlo a revisión cada tantos kilómetros, también debemos revisar nuestros equipos(computadores, celulares, tabletas, etc) cada tanto.

Una tarea sencilla de mantenimiento es hacer espacio en disco duro. Puede que parezca que influya pero un disco duro con muchos archivos tiene que moverse mucho para leer y acceder a la información. No por nada se habla de **fragmentación de disco**. Considero importante mantener el disco duro libre de archivos innecesarios o prescindibles.

En Windows, herramientas como _CCleaner_ ayudan con esta labor. Hacen un escaneo del sistema y [encuentran archivos](https://otroespacioblog.wordpress.com/2012/08/11/ver-archivos-ocultos/) viejos, con cero uso o con reglas en particular e indican que se pueden borrar sin llegar a afectar el funcionamiento del sistema.

En Linux podemos lograr algo similar usando el comando `find`. [Este comando es bien avanzado](https://otroespacioblog.wordpress.com/2017/01/11/busca-y-encuentra-en-linux-con-el-comando-find/) y al día de hoy no logro recordar su sintaxis al usarlo, no obstante, hoy dejaré aquí una forma en la que este ayuda a encontrar archivos que cumplan unas reglas según su tamaño y así saber qué borrar o qué ocupa mucho espacio en nuestro disco duro.

La sintaxis del comando para esta tarea es:

```bash
find CARPETA -size [+ | -]TAMAÑO-ARCHIVO[M | G] -ls
```

Explico:


- `find`: es el comando
- `CARPETA`: es el nombre o ruta de la carpeta que queremos analizar
- `-size`: parámetro para encontrar archivos por su tamaño
- `[+ | -]`: indicativo de si queremos encontrar archivos mayores a o menores al tamaño indicado
- `TAMAÑO-ARCHIVO`: número que indica el peso buscado, ejemplo 10 o 50
- `[M | G]`: peso del archivo sea en mega bytes o giga bytes
- `-ls`: opción que ejecuta un listado de archivos

Entonces si queremos aplicarlo para encontrar los archivos que pesen más de 10 mega bytes en la carpeta `~/.local/share/Steam` sería algo así:

```bash
$ find ~/.local/share/Steam -size +10M -ls
```

Lo que retorna:

```
654973 101896 -rw-r--r-- 1 cesc cesc 104339036 Feb 18 2017 /home/cesc/.local/share/Steam/ubuntu12_32/steam-runtime.tar.xz
9312085 14468 -rw-r--r-- 1 cesc cesc 14812720 Sep 6 2016 /home/cesc/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libCg.so
8918774 51200 -rwxr-xr-x 1 cesc cesc 52428800 Dec 5 2016 /home/cesc/.local/share/Steam/ubuntu12_32/steam-runtime.tar.xz.part0
8918678 20036 -rwxr-xr-x 1 cesc cesc 20516356 Jan 18 2017 /home/cesc/.local/share/Steam/ubuntu12_32/steamui.so
8918683 10896 -rwxr-xr-x 1 cesc cesc 11156651 Aug 9 2016 /home/cesc/.local/share/Steam/ubuntu12_32/libv8.so
8918676 19480 -rwxr-xr-x 1 cesc cesc 19946042 Jan 18 2017 /home/cesc/.local/share/Steam/ubuntu12_32/steamclient.so
8918775 50696 -rwxr-xr-x 1 cesc cesc 51910236 Dec 5 2016 /home/cesc/.local/share/Steam/ubuntu12_32/steam-runtime.tar.xz.part1
8918682 11952 -rwxr-xr-x 1 cesc cesc 12237291 Aug 9 2016 /home/cesc/.local/share/Steam/ubuntu12_32/libicuuc.so
8918688 19428 -rwxr-xr-x 1 cesc cesc 19890531 Jan 18 2017 /home/cesc/.local/share/Steam/linux64/steamclient.so
8918687 18968 -rwxr-xr-x 1 cesc cesc 19422864 Jan 18 2017 /home/cesc/.local/share/Steam/linux32/steamclient.so
8654997 15852 -rw-r--r-- 1 cesc cesc 16231428 Feb 18 2017 /home/cesc/.local/share/Steam/package/bins_ubuntu12.zip.vz.820d6d40f511509f17d4681722fd8026da2b38ba_16231428
8654985 11796 -rw-r--r-- 1 cesc cesc 12077027 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_fonts_all.zip.vz.7673e4cd32b6752bc621d8bc1a7118a9af19b64a_12077027
8655003 28708 -rw-r--r-- 1 cesc cesc 29396785 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_images_all.zip.vz.1ea174b9274bc15e751452adabc94a6715ed70a0_29396785
8655004 51212 -rw-r--r-- 1 cesc cesc 52440846 Feb 18 2017 /home/cesc/.local/share/Steam/package/runtime_part0_ubuntu12.zip.7cb113a5d6be4486ecd4873ea6460a30f8050ae8
8655006 50708 -rw-r--r-- 1 cesc cesc 51922032 Feb 18 2017 /home/cesc/.local/share/Steam/package/runtime_part1_ubuntu12.zip.f6f98a289f5af2c121b04cb9ede621b16f4c8dd0
8655005 42148 -rw-r--r-- 1 cesc cesc 43156347 Feb 18 2017 /home/cesc/.local/share/Steam/package/webkit_ubuntu12.zip.vz.ea5e4def93c6c6adde86a3d7f799f033c1aadbf3_43156347
8654986 12872 -rw-r--r-- 1 cesc cesc 13179376 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_misc_all.zip.008ed314d467eecacba58d188fdf082d23f264d2
8654988 11988 -rw-r--r-- 1 cesc cesc 12274769 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_dicts_all.zip.87bb49891925214df2d745e12a53518fd2ea86f0
8657434 111640 -rwxr-xr-x 1 cesc cesc 114312140 Jan 4 2017 /home/cesc/.local/share/Steam/ubuntu12_64/libcef.so
8655486 16044 -rwxr-xr-x 1 cesc cesc 16426032 May 12 2015 /home/cesc/.local/share/Steam/tenfoot/resource/fonts/NotoSansCJKjp-Regular.otf
```

Se puede combinar para encontrar archivos dentro de un rango usando una combinación de signo positivo y negativo al lado del tamaño del archivo. Ejemplo:

```bash
$ find ~/.local/share/Steam -size +10M -size -15M -ls
```

```
8918683 10896 -rwxr-xr-x 1 cesc cesc 11156651 Aug 9 2016 /home/cesc/.local/share/Steam/ubuntu12_32/libv8.so
8918682 11952 -rwxr-xr-x 1 cesc cesc 12237291 Aug 9 2016 /home/cesc/.local/share/Steam/ubuntu12_32/libicuuc.so
8654985 11796 -rw-r--r-- 1 cesc cesc 12077027 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_fonts_all.zip.vz.7673e4cd32b6752bc621d8bc1a7118a9af19b64a_12077027
8654986 12872 -rw-r--r-- 1 cesc cesc 13179376 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_misc_all.zip.008ed314d467eecacba58d188fdf082d23f264d2
8654988 11988 -rw-r--r-- 1 cesc cesc 12274769 Feb 18 2017 /home/cesc/.local/share/Steam/package/tenfoot_dicts_all.zip.87bb49891925214df2d745e12a53518fd2ea86f0
```

De esa forma se pueden encontrar archivos pesados en el disco duro. Y de esa forma me di cuenta que hay archivos por borrar de Steam, aplicación que ya había desinstalado pero parece que dejó archivos de configuración por ahí.

Como casi siempre [la solución a esta situación](https://askubuntu.com/questions/36111/whats-a-command-line-way-to-find-large-files-directories-to-remove-and-free-up/36114#36114) la encontré en Ask Ubuntu(comunidad de Stack Exchange).

***

_Este artículo fue publicado [primero en mi blog personal](https://otroespacioblog.wordpress.com/2018/02/03/como-encontrar-archivos-por-tamano-usando-la-consola/), Otro Espacio Blog. Ahí escribo sobre todo lo que aprendo al programar y también sobre temas no relacionados a tecnología._