Ordenar archivos por tamaño en Linux

Niraj Menon 30 enero 2023
  1. Encontrar los archivos más grandes y más pequeños en un directorio en Linux
  2. Encontrar el tamaño de todos los directorios en Linux
  3. Encontrar archivos más grandes que un tamaño específico en Linux
  4. Ver el uso del disco en Linux
Ordenar archivos por tamaño en Linux

A veces, le gustaría hacer una limpieza profunda del sistema encontrando archivos innecesariamente grandes y eliminándolos o eliminando archivos más pequeños que un tamaño predeterminado, como los registros. Linux ofrece varias utilidades que pueden ayudarnos a encontrar dichos archivos cuando se usan en conjunto.

Este tutorial explicará cómo usar find para usos cotidianos, como encontrar los archivos en una carpeta en función de su tamaño.

Encontrar los archivos más grandes y más pequeños en un directorio en Linux

Para encontrar los archivos más grandes en una carpeta determinada, podemos usar los comandos du y sort.

user@linux:~$ ls -lh
-rw-r--r-- 1 user user 8.0M Jan 1 00:00 a
-rw-r--r-- 1 user user 4.0M Jan 1 00:00 b
-rw-r--r-- 1 user user 2.0M Jan 1 00:00 c
-rw-r--r-- 1 user user 1.0M Jan 1 00:00 d
user@linux:~$ du -h * | sort -h
1.0M    d
2.0M    c
4.0M    b
8.0M    a

Esto imprimirá los archivos en orden de tamaño creciente, por lo que el archivo más grande en el directorio estará al final de la salida del programa, mientras que el más pequeño estará al principio.

Tenga en cuenta el uso de la bandera -h: esto le dice a los comandos que los tamaños se dan en la forma legible por humanos.

Encontrar el tamaño de todos los directorios en Linux

El siguiente comando busca y ordena los directorios en orden ascendente de tamaño en su directorio de inicio.

user@linux:~$ sudo find /var/ -maxdepth 1 -type d -exec du -sh {} \; | sort -h
4.0K    /var/local
4.0K    /var/mail
4.0K    /var/opt
56K     /var/spool
60K     /var/tmp
92K     /var/snap
7.3M    /var/backups
4.3G    /var/log
4.4G    /var/cache
17G     /var/lib
25G     /var/

Encontrar archivos más grandes que un tamaño específico en Linux

Si conoce un tamaño mínimo o máximo para los archivos que busca, puede utilizar el comando find para enumerar dichos archivos.

Suponga que desea encontrar todos los archivos de más de 200 MB (200M). Podemos hacer esto con el siguiente comando, que además imprime el tamaño de cada archivo descubierto. Usamos sudo para descender a todos los directorios de propiedad raíz.

Tenga en cuenta que la salida de su ejecución puede generar archivos diferentes.

user@linux:/var$ sudo find . -type f -size +200M -exec ls -lh {} \;
-rw------- 2 root root 363M Jan 1 00:00 ./lib/snapd/snaps/qt513_24.snap
-rw------- 2 root root 363M Jan 1 00:00 ./lib/snapd/cache/cf177ca655544816bb73b6d8e89c83753b96548f105acd563c1bf1b7d0d046bd3e99a96db5bfe912f8a446a8e9d5b6c5

Ver el uso del disco en Linux

El comando de Linux df nos permite ver el uso general del disco en cada partición de su sistema de archivos, lo que ayuda a reducir las particiones donde el espacio está sobreutilizado. Ejecutamos lo siguiente para encontrar el uso del disco.

Una vez más, esto puede ser bastante diferente según la configuración de su disco. Las entradas con snap se denominan discos de bucle invertido, que son discos virtuales en los que se montan imágenes de disco, según lo requiere la utilidad Snap en Ubuntu.

user@linux:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  2.1M  1.6G   1% /run
/dev/nvme0n1p6  200G   45G  146G  24% /
tmpfs           7.8G  397M  7.4G   5% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/nvme0n1p2   96M   36M   61M  37% /boot/efi
/dev/loop1       56M   56M     0 100% /snap/core18/2253
/dev/loop0      165M  165M     0 100% /snap/gnome-3-28-1804/161
/dev/loop2      512K  512K     0 100% /snap/gifex/3
/dev/loop3       66M   66M     0 100% /snap/gtk-common-themes/1519
/dev/loop4      128K  128K     0 100% /snap/bare/5
/dev/loop6      363M  363M     0 100% /snap/qt513/24
/dev/loop7      100M  100M     0 100% /snap/core/11993
/dev/sda7       1.1T  384G  677G  37% /home
tmpfs           1.6G  1.9M  1.6G   1% /run/user/1000
/dev/loop8       56M   56M     0 100% /snap/core18/2284

Artículo relacionado - Linux File