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

Cuando utiliza el comando du de Linux, obtiene tanto el uso real del disco como el tamaño real de un archivo o directorio. Explicaremos por qué estos valores no son los mismos.

Uso de disco real y tamaño real

El tamaño de un archivo y el espacio que ocupa en su disco duro rara vez son iguales. El espacio en disco se asigna en bloques. Si un archivo es más pequeño que un bloque, aún se le asigna un bloque completo porque el sistema de archivos no tiene una unidad más pequeña de espacio para usar.

  Cómo jugar No Man's Sky en Linux

A menos que el tamaño de un archivo sea un múltiplo exacto de bloques, el espacio que usa en el disco duro siempre debe redondearse al siguiente bloque completo. Por ejemplo, si un archivo tiene más de dos bloques pero menos de tres, todavía se necesitan tres bloques de espacio para almacenarlo.

Se utilizan dos medidas en relación con el tamaño del archivo. El primero es el tamaño real del archivo, que es el número de bytes de contenido que componen el archivo. El segundo es el tamaño efectivo del archivo en el disco duro. Este es el número de bloques del sistema de archivos necesarios para almacenar ese archivo.

  Cómo usar el comando wall en Linux

Un ejemplo

Veamos un ejemplo sencillo. Redirigiremos un solo carácter a un archivo para crear un archivo pequeño:

echo "1" > geek.txt

los geek.txt ”en una ventana de terminal. ‘ width = ”646 ″ height =” 57 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);”>

Ahora, usaremos la lista de formato largo, ls, para ver la longitud del archivo:

ls -l geek.txt

los

La longitud es el valor numérico que sigue a las entradas de dave dave, que son dos bytes. ¿Por qué son dos bytes cuando solo enviamos un carácter al archivo? Echemos un vistazo a lo que sucede dentro del archivo.

  Cómo utilizar el comando FTP en Linux

Usaremos el comando hexdump, que nos dará un recuento de bytes exacto y nos permitirá «ver» caracteres no imprimibles como valores hexadecimales. También usaremos la opción -C (canónica) para forzar la salida a mostrar valores hexadecimales en el