GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener el tamaño físico de un archivo en Linux?

ls -l le dará el tamaño aparente del archivo, que es la cantidad de bytes que un programa leería si leyera el archivo de principio a fin. du le daría el tamaño del archivo "en el disco".

De forma predeterminada, du le da el tamaño del archivo en número de bloques de disco, pero puede usar -h para obtener una unidad legible por humanos en su lugar. Ver también el manual para du en su sistema.

Tenga en cuenta que con du de GNU coreutil (que es probablemente lo que tienes en Linux), -b obtener bytes implica el --apparent-size opción. Esto no es lo que desea usar para obtener la cantidad de bytes realmente utilizados en el disco. En su lugar, utilice --block-size=1 o -B 1 .

Con GNU ls , también puedes hacer ls -s --block-size=1 en el archivo Esto dará el mismo número que du -B 1 para el archivo.

Ejemplo:

$ ls -l file
-rw-r--r--  1 myself wheel  536870912 Apr  8 11:44 file

$ ls -lh file
-rw-r--r--  1 myself wheel   512M Apr  8 11:44 file

$ du -h file
24K    file

$ du -B 1 file
24576   file

$ ls -s --block-size=1 file
24576 file

Esto significa que se trata de un archivo de 512 MB que ocupa unos 24 KB en el disco. Es un escaso archivo (principalmente ceros que en realidad no se escriben en el disco sino que se representan como "agujeros" lógicos en el archivo). Los archivos dispersos son comunes cuando se trabaja con archivos grandes asignados previamente, p. imágenes de disco para máquinas virtuales o archivos de intercambio, etc. Crear un archivo disperso es rápido, mientras que llenarlo con ceros es lento (e innecesario).

Ver también el manual para fallocate en su sistema Linux.


Obtengo el tamaño del archivo en bytes así:

actualsize=$(du -b "${file}" | cut -f 1)

Linux
  1. Cómo usar el comando Tar en Linux

  2. Cómo aumentar el tamaño de intercambio en Ubuntu Linux

  3. ¿Cómo crear un archivo con un tamaño determinado en Linux?

  4. Cómo obtener el tamaño de tar.gz en un archivo (MB) en python

  5. ¿Cómo obtener la ruta al archivo actual (pwd) en Linux desde C?

Cómo obtener el tamaño de un directorio en Linux

Cómo agregar texto al comienzo del archivo en Linux

Cómo obtener el nombre de archivo de la ruta completa en Linux

Cómo encontrar el tamaño total de un directorio en Linux

¿Cómo usar el comando Gzip en Linux?

¿Cómo obtener el tamaño de archivo/carpeta con SSH en Linux?