¿Cómo puedo ver el tamaño de los archivos y directorios en Linux?


341

¿Cómo puedo ver el tamaño de los archivos y directorios en Linux? Si se usa df -m, muestra el tamaño de todo el directorio en el nivel superior, pero, para los directorios y archivos dentro del directorio, ¿cómo verifico el tamaño?

Respuestas:


533

Use el lscomando para archivos y el ducomando para directorios.

Comprobación de tamaños de archivo

ls -l filename   #Displays Size of the specified file
ls -l *          #Displays Size of All the files in the current directory
ls -al *         #Displays Size of All the files including hidden files in the current directory
ls -al dir/      #Displays Size of All the files including hidden files in the 'dir' directory

lsEl comando no mostrará el tamaño real de los directorios ( ¿por qué? ). Por lo tanto, utilizamos dupara este propósito.

Comprobación de tamaños de directorio

du -sh directory_name    #Gives you the summarized(-s) size of the directory in human readable(-h) format
du -bsh *                #Gives you the apparent(-b) summarized(-s) size of all the files and directories in the current directory in human readable(-h) format

Incluyendo -hla opción en cualquiera de los comandos anteriores (por Ej: ls -lh *o du -sh) le dará el tamaño en formato legible por humanos ( kb, mb, gb, ...)

Para más información ver man lsyman du


77
lsno le mostrará el tamaño total de todos los contenidos de un directorio.
Maxim Egorushkin

3
@MaximYegorushkin Gracias. Corregido
mk ..

2
¿Cómo puedo ver el tamaño en bytes (Mega, Giga, ...)?
Francisco Corrales Morales

77
@FranciscoCorralesMorales ls -lh le mostrará el tamaño en kb MB GB, etc.
mk ..

44
tenga en cuenta que el ducomando muestra el uso del disco en el archivo, que puede ser mayor que el tamaño real del archivo. Puede usar du -dpara obtener el tamaño real como lo lshace. Más información: unix.stackexchange.com/a/106278/155224
Lucas Alonso el

148

Hay un ducomando

Tamaño de un directorio y / o archivo:

$ du -sh .bashrc /tmp

--apparent-sizeel interruptor de línea de comando hace que mida los tamaños aparentes (lo que se lsmuestra) en lugar del uso real del disco.


1
¿Cómo puedo ver el tamaño en bytes (Kilo, Mega, Giga, ...)?
Francisco Corrales Morales

8
@FranciscoCorralesMorales -hflag debe hacer lo que usted pide: tamaños de impresión en formato legible para humanos (por ejemplo, 1K 234M 2G)
Maxim Egorushkin

3
No creo que esto sea correcto. Lo que duhace es resumir el uso del disco del conjunto de archivos , es decir, si un archivo es muy pequeño (es decir, 2140 bytes), la salida de "du" es (en mi caso) 4KB porque ese es el tamaño del clúster
mfloris

@mfloris Use --apparent-sizeentonces.
Maxim Egorushkin

3
Me gusta du -hs *ver el tamaño de todos los archivos y directorios en el directorio actual.
Jordan Stewart

83

Úselo ls -spara enumerar el tamaño del archivo, o si lo prefiere, ls -shpara tamaños legibles por humanos.

Para el uso de directorios du, y nuevamente, du -hpara tamaños legibles por humanos.


77
Un consejo es usar; 'du -sh *' para enumerar todos los tamaños de directorio. :)
Entalpi

36

Puedes usar:

ls -lh

Con este comando, verá el espacio aparente del directorio y el espacio real de los archivos y, en detalle, los nombres de los archivos que se muestran, además del tamaño y la fecha de creación de cada uno.


ls -lle dará el tamaño del archivo incluyendo los metadatos? ya que parece ser un poco 4kb más grande para uno de los archivos que probé
Jun711

22

Tamaño de archivo en MB

ls -l --b=M  filename | cut -d " " -f5

Tamaño de archivo en GB

ls -l --b=G  filename | cut -d " " -f5

¿Cómo obtener los dos campos como salida?
surbhiGoel

17

También hay una gran ncduutilidad: puede mostrar el tamaño del directorio con información detallada sobre subcarpetas y archivos.

Instalación

Ubuntu:

$ sudo apt-get install ncdu

Uso

Simplemente escriba ncdu [path]la línea de comando. Después de unos segundos para analizar la ruta, verá algo como esto:

$ ncdu 1.11 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
.  96,1 GiB [##########] /home
.  17,7 GiB [#         ] /usr
.   4,5 GiB [          ] /var
    1,1 GiB [          ] /lib
  732,1 MiB [          ] /opt
. 275,6 MiB [          ] /boot
  198,0 MiB [          ] /storage
. 153,5 MiB [          ] /run
.  16,6 MiB [          ] /etc
   13,5 MiB [          ] /bin
   11,3 MiB [          ] /sbin
.   8,8 MiB [          ] /tmp
.   2,2 MiB [          ] /dev
!  16,0 KiB [          ] /lost+found
    8,0 KiB [          ] /media
    8,0 KiB [          ] /snap
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /srv
!   4,0 KiB [          ] /root
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /cdrom
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz

Eliminar el elemento resaltado actualmente con d, salir con CTRL+c


16

ls -l --block-size = M le dará un listado de formato largo (necesario para ver realmente el tamaño del archivo) y redondeará los tamaños de archivo al MiB más cercano.

Si desea unidades de MB (10 ^ 6 bytes) en lugar de MiB (2 ^ 20 bytes), use --block-size = MB en su lugar.

Si no desea que el sufijo M se adjunte al tamaño del archivo, puede usar algo como --block-size = 1M. Gracias Stéphane Chazelas por sugerir esto.

Esto se describe en la página de manual de ls; hombre ls y busque TAMAÑO. También permite unidades que no sean MB / MiB, y por lo que parece (no lo intenté) también tamaños de bloque arbitrarios (para que pueda ver el tamaño del archivo como un número de bloques de 412 bytes, si lo desea a).

Tenga en cuenta que el parámetro --block-size es una extensión de GNU en la parte superior de ls del Open Group, por lo que esto puede no funcionar si no tiene una tierra de usuario de GNU (lo que hace la mayoría de las instalaciones de Linux). El ls de GNU coreutils 8.5 admite --block-size como se describió anteriormente.


13

Vaya al directorio elegido y ejecute:

$ du -d 1 -h

dónde:

-d 1 is the depth of the directories

-h is the human-readable option

Verás así:

0   ./proc
8.5M    ./run
0   ./sys
56M ./etc
12G ./root
33G ./var
23M ./tmp
3.2G    ./usr
154M    ./boot
26G ./home
0   ./media
0   ./mnt
421M    ./opt
0   ./srv
2.6G    ./backups
80G .

9

Si lo está usando en un script, use stat.

$ date | tee /tmp/foo
Wed Mar 13 05:36:31 UTC 2019

$ stat -c %s /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 05:36 /tmp/foo

Eso te dará el tamaño en bytes. Consulte man statpara obtener más opciones de formato de salida.

El equivalente de OSX / BSD es:

$ date | tee /tmp/foo
Wed Mar 13 00:54:16 EDT 2019

$ stat -f %z /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 00:54 /tmp/foo

8

Puede usar el siguiente comando para obtener una lista de archivos en un formato fácil de leer por humanos.

ls -lrtsh


7

Hago lo siguiente todo el tiempo:

$ du -sh backup-lr-May-02-2017-1493723588.tar.gz

NÓTESE BIEN:

-s, --summarize
            display only a total for each argument
-h, --human-readable
            print sizes in human readable format (e.g., 1K 234M 2G)

5

Para obtener el tamaño total del directorio o el tamaño total del uso del archivo,

du -csh <directory or filename*> | grep total

5

Use el comando ls con el argumento -h: [root @ hots19, etc.] # ls -lh
h: para lectura humana.

Exemple: 
    [root@CIEYY1Z3 etc]# ls -lh
    total 1.4M
    -rw-r--r--.  1 root   root      44M Sep 15  2015 adjtime
    -rw-r--r--.  1 root   root     1.5K Jun  7  2013 aliases
    -rw-r--r--   1 root   root      12K Nov 25  2015 aliases.db
    drwxr-xr-x.  2 root   root     4.0K Jan 11  2018 alternatives
    -rw-------.  1 root   root      541 Jul  8  2014 anacrontab
    -rw-r--r--.  1 root   root      55M Sep 16  2014 asound.conf
    -rw-r--r--.  1 root   root       1G Oct  6  2014 at.deny

4

Soy un usuario de Ubuntu 16.04 y creo que el llcomando es, con mucho, la forma más fácil de ver el contenido de un directorio. Me he dado cuenta de que no todas las distribuciones de Linux admiten este comando, pero probablemente haya una solución / instalación para cada distribución.

Ejemplo:

user@user-XPS-15-9560:/$ ll
total 188
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ./
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ../
drwxr-xr-x   2 root root  4096 Jan 22 15:13 bin/
drwxr-xr-x   4 root root 12288 Jan 29 11:35 boot/
drwxr-xr-x   2 root root  4096 Sep  3 18:14 cdrom/
drwxr-xr-x  20 root root  4440 Feb  5 08:43 dev/
drwxr-xr-x 153 root root 12288 Feb  2 15:17 etc/
drwxr-xr-x   4 root root  4096 Sep  3 18:15 home/
...

La mayor ventaja para mí es que es rápido y realmente intuitivo de usar.

ACTUALIZACIÓN: lo que no sabía era que en Ubuntu es un alias preconfigurado. Puede configurarlo usted mismo fácilmente ejecutando alias ll="ls -la"en la línea de comando o agregando esta entrada en su archivo de configuración .bashrc:

sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc

3

du -sh [nombre_archivo]

funciona perfectamente para obtener el tamaño de un archivo en particular.


3

Todo lo que necesitas es -ly --block-sizebanderas

Tamaño de todos los archivos y directorios en el directorio de trabajo (en MB)

ls -l --block-size=M

Tamaño de todos los archivos y directorios en el directorio de trabajo (en GB)

ls -l --block-size=G

Tamaño de un archivo o directorio específico

ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/

ls --help

-l usar un formato de listado largo

--block-size=SIZE: escalar los tamaños SIZEantes de imprimirlos; por ejemplo, '--block-size=M'imprime tamaños en unidades de 1,048,576 bytes; ver SIZEformato abajo

SIZEes un entero y una unidad opcional (ejemplo: 10M es 10 * 1024 * 1024). Las unidades son K, M, G, T, P, E, Z, Y (potencias de 1024) o KB, MB, ... (potencias de 1000).



2

Tienes que diferenciar entre el tamaño del archivo y el uso del disco . La principal diferencia entre ambos proviene del hecho de que los archivos se "cortan en pedazos" y se almacenan en bloques.

El tamaño de bloque moderno es 4KiB, por lo que los archivos usarán espacio en disco múltiple de 4KiB, independientemente de cuán pequeños sean.

Si usa el comando stat, puede ver ambas figuras una al lado de la otra.

stat file.c

Si desea una vista más compacta para un directorio, puede usarlo ls -ls, lo que le dará uso en unidades de 1 KB.

ls -ls dir

También dule dará un uso real del disco, en unidades de 1KiB, o de acuerdo con la -ubandera.

Ejemplo: uso de un archivo de 1 byte

$ echo "" > file.c

$ ls -l file.c
-rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ ls -ls file.c
4 -rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ du file.c
4 file.c

$ dutree file.c
[ file.c 1 B ]

$ dutree -u file.c
[ file.c 4.00 KiB ]

$ stat file.c
 File: file.c
 Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 2fh/47d Inode: 2185244 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ nacho) Gid: ( 1000/ nacho)
Access: 2018-04-30 20:41:58.002124411 +0200
Modify: 2018-04-30 20:42:24.835458383 +0200
Change: 2018-04-30 20:42:24.835458383 +0200
 Birth: -

Además, en los sistemas de archivos modernos podemos tener instantáneas, archivos dispersos (archivos con agujeros ) que complican aún más la situación.

Puede ver más detalles en este artículo: comprender el tamaño del archivo en Linux


1

puede usar ls -sh en linux, puede ordenarlos y también debe ir al directorio donde desea verificar el tamaño de los archivos


1

vaya al directorio específico y luego ejecute el siguiente comando

# du -sh * 

4.0K    1
4.0K    anadb.sh --> Shell file
4.0K    db.sh/    --> shell file
24K     backup4/  --> Directory
8.0K    backup6/  --> Directory 
1.9G    backup.sql.gz  --> sql file

0

Puede usar ncduel analizador de uso de disco aquí. Muestra el tamaño de los archivos y directorios en una interfaz ncurses. Puede navegar a cada directorio y ver los tamaños de los archivos desde la misma interfaz.

Instalar

$ sudo apt-get install ncdu

Analizar

$ ncdu <directory>

ingrese la descripción de la imagen aquí

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.