GNU/Linux >> Tutoriales Linux >  >> Linux

¿Manera portátil de obtener el tamaño del archivo (en bytes) en Shell?

wc -c < filename (abreviatura de recuento de palabras, -c imprime el recuento de bytes) es una solución POSIX portátil. Solo es posible que el formato de salida no sea uniforme en todas las plataformas, ya que algunos espacios pueden estar antepuestos (como es el caso de Solaris).

No omita la redirección de entrada. Cuando el archivo se pasa como argumento, el nombre del archivo se imprime después del conteo de bytes.

Me preocupaba que no funcionara para archivos binarios, pero funciona bien tanto en Linux como en Solaris. Puedes probarlo con wc -c < /usr/bin/wc . Además, se garantiza que las utilidades POSIX manejen archivos binarios, a menos que se especifique lo contrario de forma explícita.


Terminé escribiendo mi propio programa (realmente pequeño) para mostrar solo el tamaño. Más información aquí:http://fwhacking.blogspot.com/2011/03/bfsize-print-file-size-in-bytes-and.html

En mi opinión, las dos formas más limpias con las herramientas comunes de Linux son:

$ stat -c %s /usr/bin/stat
50000

$ wc -c < /usr/bin/wc
36912

Pero simplemente no quiero escribir parámetros o canalizar la salida solo para obtener un tamaño de archivo, así que estoy usando mi propio bfsize.


Aunque du normalmente imprime el uso del disco y no el tamaño real de los datos, GNU coreutils du puede imprimir el "tamaño aparente" del archivo en bytes:

du -b FILE

Pero no funcionará bajo BSD, Solaris, macOS, ...


Linux
  1. Manera de modificar un archivo en el lugar?

  2. Obtener la edad del archivo dado?

  3. Linux:¿la forma portátil de obtener la dirección de origen de la ruta predeterminada?

  4. Obtener el tamaño de un archivo remoto desde la terminal?

  5. Cómo encontrar todos los archivos con tamaño de archivo cero (0) bytes en un directorio recursivamente

¿Obtener archivo creado/hora de creación?

¿Por qué Ls y Hexdump no están de acuerdo sobre el tamaño del archivo?

Reducir el tamaño del archivo PDF en Linux

Obtenga el tiempo de ejecución del programa en el shell

¿Qué es un archivo .sh?

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