¿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 -h
por tamaño?es que estoy solicitando una salida que incluyetodoarchivos y directorios en el directorio actual –ya sea oculto o no.
Referencias
- ¿Cómo puedo ordenar la salida
du -h
por tamaño? - ¿Cómo puedo encontrar los directorios más grandes en Unix/Ubuntu?
- Cómo utilizar
du
para ver archivos mayores que un tamaño umbral - ¿Cómo se clasifica
du
la producción por tamaño? - Cómo enumerar todos los archivos ordenados por tamaño
- El
du
comando no analiza directorios ocultos. - Cómo obtener los tamaños resumidos de directorios
- Mostrar cada tamaño de subdirectorio en un formato de lista
- Una forma rápida de mostrar el tamaño de cada subdirectorio.
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
, jpg
o 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
- La
du
página de manual de Linux (uso del disco) - Principales utilidades de GNU
- En expresiones regulares, el signo de intercalación (
^
) significano - Comenta sobre cómo incluir archivos tanto ocultos como no ocultos.
- Sintaxis de utilidad | Directriz 10,fin de opciones
- El
ncdu
analizador de uso del disco - Responder recomendando
ncdu
- La
ls
página de manual de Linux (lista de contenidos del directorio) - Cómo revertir la salida en la línea de comando
- Cómo mostrar solo carpetas de más de 1 GB de tamaño
- Cómo enumerar todos los archivos ordenados por tamaño
1
Atribuyo con gratitud mi solución aeste comentario. El --
argumentomarca el final de las opciones.
El du
comando puede ser tremendamente lento para archivos/carpetas muy grandes. Considere usar elncdu
comando 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 ncdu
y presione ↵.
2
La -h
bandera dels
genera los tamaños de archivo en un estilo legible por humanos.
La -S
bandera 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.