Respuestas:
Use el ls
comando para archivos y el du
comando 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
ls
El comando no mostrará el tamaño real de los directorios ( ¿por qué? ). Por lo tanto, utilizamos du
para 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 -h
la 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 ls
yman du
du
comando muestra el uso del disco en el archivo, que puede ser mayor que el tamaño real del archivo. Puede usar du -d
para obtener el tamaño real como lo ls
hace. Más información: unix.stackexchange.com/a/106278/155224
Hay un du
comando
Tamaño de un directorio y / o archivo:
$ du -sh .bashrc /tmp
--apparent-size
el interruptor de línea de comando hace que mida los tamaños aparentes (lo que se ls
muestra) en lugar del uso real del disco.
-h
flag debe hacer lo que usted pide: tamaños de impresión en formato legible para humanos (por ejemplo, 1K 234M 2G)
du
hace 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
--apparent-size
entonces.
du -hs *
ver el tamaño de todos los archivos y directorios en el directorio actual.
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 -l
le 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é
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
También hay una gran ncdu
utilidad: puede mostrar el tamaño del directorio con información detallada sobre subcarpetas y archivos.
Ubuntu:
$ sudo apt-get install ncdu
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
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.
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 .
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 stat
para 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
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)
Para obtener el tamaño total del directorio o el tamaño total del uso del archivo,
du -csh <directory or filename*> | grep total
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
Soy un usuario de Ubuntu 16.04 y creo que el ll
comando 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
Todo lo que necesitas es -l
y --block-size
banderas
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ñosSIZE
antes de imprimirlos; por ejemplo,'--block-size=M'
imprime tamaños en unidades de 1,048,576 bytes; verSIZE
formato abajo
SIZE
es 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).
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 du
le dará un uso real del disco, en unidades de 1KiB, o de acuerdo con la -u
bandera.
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
ls
no le mostrará el tamaño total de todos los contenidos de un directorio.