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, ...