¿Cómo enumerar tamaños de archivos recursivos de archivos y directorios en un directorio?


50

¿Cómo enumero todos los archivos en un directorio y sus tamaños de archivo recursivos?

---editar

Quiero ver los tamaños 'enrollados' en los directorios principales en el directorio listado. No quiero ver los directorios secundarios o sus contenidos o tamaños.


1
¿Quiere decir que desea ver el tamaño total (suma) de todos los archivos en una carpeta, como hacer clic derecho en una carpeta en su escritorio y seleccionar 'propiedades'?
Pavlos G.

¿Está buscando un software que lo ayude a encontrar archivos grandes o algo para obtener un árbol de archivos (plegable)?
Lekensteyn

Hola @Pavlos G: me refiero a la suma de cada uno de los directorios en el directorio en el que estoy actualmente, no a la suma del directorio general.
Ojo de halcón

@JG - Comprueba mi actualización ;-)
Pavlos G.

Respuestas:


53

Supongo que la forma más fácil es escribiendo ls -l, o ls -lhque proporcionará el tamaño del archivo en formato legible (KB, MB, etc.).

Si 'recursivamente' significa enumerar todas las carpetas posteriores, por ejemplo:

/ foo /
/ foo / bar / ....

Entonces también debe agregar parámetros R, como ls -lRols -lhR

Se lspuede encontrar más información escribiendoman ls

Actualizar:

El siguiente comando como propuso Lekensteyn probablemente hará el trabajo:

du -h --max-depth=1 <folder>

-hes para lectura humana
--apparent-sizees otra forma de mostrar tamaños, como ya se indicó,
--max-depthes el nivel de subcarpetas al que desea bajar.


¿Qué usar para una profundidad máxima? -1?
dylanh724

61
apt-get install ncdu

ingrese la descripción de la imagen aquí

También es interactivo, por lo que si desea verificar una subcarpeta solo ARRIBA, ABAJO e Ingresar a ella.


Justo lo que estaba buscando. ¡Muchas gracias!
Mathlight

Tal vez la recomendación de software más sorprendente que he recibido
SomethingSomething

esta debería ser la respuesta aprobada
dvdmn

30

Para obtener el tamaño total de un directorio y todos los elementos secundarios

du -hs directory/*

Me gustaría pasar al siguiente nivel: los tamaños recursivos de todos los niños de primer nivel.
Ojo de halcón

1
Editaré mi respuesta. Debe usar el directorio du -h / *
Richard Holloway

17

También echa un vistazo tree. No está instalado por defecto, pero son los repositorios.

Ejemplo:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Se pueden encontrar más opciones en la página del manual.


¿Se deben mostrar los tamaños?
Ojo de halcón

JG: El -s muestra los tamaños.
Richard Holloway

1
Muestra el tamaño del registro del directorio en lugar del tamaño completo del directorio.
Steven Lu

-hmostrar tamaño en forma legible para humanos, por ejemplotree -s
Eric Wang

15

Dado que no menciona específicamente que necesita una solución basada en terminal, creo que el baobab aka Disk Usage Analyzer falta en la lista.

Está instalado en Ubuntu de forma predeterminada y hace exactamente lo que desea en una interfaz gráfica de usuario agradable con la capacidad de profundizar en la jerarquía de directorios.

Además de mostrar una lista de directorios con sus tamaños, también muestra un anillo o una tabla de mapa de árbol del uso del sistema de archivos, lo cual es extremadamente útil para visualizar los directorios que ocupan más espacio.

baobab el analizador de uso de disco


7

Una solución terminal es el ducomando:

du --all --human-readable --apparent-size

(abreviatura: du -ah --apparent-size)

dumuestra el uso del disco para cada archivo y directorio. Las opciones explicadas:

  • --all, -a- también muestra tamaños para archivos, no solo directorios
  • --human-readable, -h- muestra tamaños en un formato legible para humanos, por ejemplo 10K(10 kilobytes), 10(10 bytes)
  • --apparent-size - muestra el tamaño real del archivo, no los tamaños utilizados por el disco.

Sólo quería a los niños de primer nivel
Hawkeye

2
@hawkeye para el primer nivel que puedes usar--max-depth=1
nikoskip

44
@nikoskip buen consejo! También es bueno saber que la taquigrafía --max-depth=1se puede acortar -d1.
Lekensteyn

cómo conseguir todo esto en un orden decending de tamaño ..
Krazzy R

¿Cómo puedo ver el contenido y vacío: / dev / sda5 ext4 430G 381G 27G 94% / mi portátil es menos de 1 mes de edad y es tan completa que no tiene sentido
Krazzy R

2

Esto parece hacer el truco cuando los enlaces simbólicos están involucrados.

ls -LRlh

la respuesta dada no me dio detalles para los enlaces sim (ls -lhR), los números que figuran al lado tampoco correspondían con el tamaño correcto de cada uno de los valores. Mi respuesta me dio una jerarquía con una estructura de árbol definida y la respuesta correcta ... ¿O te refieres a alguna otra respuesta votada?
Mulki

Voto negativo retraído, votado a favor. Por favor, editar y poner el comentario en la respuesta ... Gracias por la explicación. ;-)
Fabby

1

Para obtener una lista ordenada, coloque todo en MB y ordene:

du -m * | sort -n

O utilice herramientas como DiskReport para generar un informe del árbol de disco completo.


1

Otra solución de terminal con findy ordenar (por tamaño de archivo, columna 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Esto no muestra el tamaño del directorio.
muru
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.