Cómo generar todos los archivos/carpetas ordenados por tamaño, incluidos los ocultos

Cómo generar todos los archivos/carpetas ordenados por tamaño, incluidos los ocultos

¿Cómo puedo generar todos los archivos/directorios, ordenados por tamaño, incluidos los ocultos
(aquellos cuyo nombre comienza con un punto), todo de una sola vez?

Portamaño de un directorio, me refiero a la suma de todos los tamaños de archivos en el directorio y todo su árbol de subdirectorios.

La diferencia con¿Cómo puedo ordenar la salida du -hpor tamaño?es que estoy solicitando una salida que incluyetodoarchivos y directorios en el directorio actual –ya sea oculto o no.

Referencias

Respuesta1

¿Cómo puedo generar todos los archivos/directorios, ordenados por tamaño, incluidos los ocultos?

Utilizar eldu(uso del disco)comando, que es parte dePrincipales utilidades de GNU: 1

du -hs -- * .[^.]* | sort -h

El.[^.]* expresión regulargarantiza que se incluyan archivos y directorios ocultos.

Listarsolo escondidoarchivos y directorios, ordenados crecientemente en tamaño:

du -hs -- .[^.]* | sort -h

Listasolo directorios– ocultos o no – ordenados de tamaño creciente:

du -hs -- */ .[^.]*/ | sort -h

Sólo listaarchivosen el directorio actual

Listatodoarchivos, ordenados crecientemente en tamaño: 2

ls -AhlS | grep '^-' | tac

Sólo listaocultoarchivos, ordenados aumentando en tamaño:

ls -hldS .* | grep '^-' | tac

Sólo listaregularArchivos (no ocultos), ordenados de tamaño creciente:

ls -lS | grep '^-' | tac

Listar archivosrecursivamente– en todo el árbol de subdirectorios

Esto no se pregunta en la pregunta, pero a veces es posible que desee enumerar todos los archivos en el árbol de subdirectorios (incluido el directorio actual), ordenados por tamaño. 3

du -ah | sort -h

El resultado será una lista (posiblemente abrumadoramente larga) de subdirectorios y archivos. Para restringirlo solo a archivos, necesitará tener una idea de qué extensión de archivo tienen los archivos más grandes (observando el resultado del comando anterior).

du -ah | sort -h | grep .<file-extension>

Aquí debe reemplazar <file-extension>con zip, png, jpgo cualquier extensión de archivo que tengan los archivos más grandes.

Ejemplos:

du -ah | sort -h | grep .zip
du -ah | sort -h | grep .png

Referencias


1 Atribuyo con gratitud mi solución aeste comentario. El --argumentomarca el final de las opciones.
El ducomando puede ser tremendamente lento para archivos/carpetas muy grandes. Considere usar elncducomando en su lugar.
Para instalar en un derivado de Debian, incluido Ubuntu, ejecute: sudo apt install -y ncdu.
En Arch Linux, incluido MSYS2, ejecute: yes | pacman -Syu ncdu.
Para usarlo, escriba ncduy presione .

2 La -hbandera delsgenera los tamaños de archivo en un estilo legible por humanos.
La -Sbandera ordena la salida en el orden dedecrecientetamaño.
La tubería | grep '^-'excluye directorios y enlaces simbólicos.
El tubo| tac invierte la salida.

3 Es más probable que esto sea de interés cuando el tamaño del directorio actual es de unos pocos megabytes en lugar de gigabytes.

información relacionada