Sé que puedo usar ls -lat
para averiguar cuántos bytes tiene un archivo y luego multiplicar por 8 para averiguar cuántos bits. ¿Pero es esto posible en una sola línea de comando?
bash
shell
command-line
filesystems
files
Felipe
fuente
fuente
Respuestas:
Con GNU
du
:fuente
bc
,awk
puede hacer matemáticas por sí mismo:du -b FILE | awk '{print $1 * 8}
wc -c < FILE
para un equivalente portátil (para archivos no regulares, sin embargo, tiene el efecto secundario de leerlos)Una solución shell + GNU coreutils:
La
-c%s
opción destat
devolver solo el tamaño del archivo en bytes, eliminando cualquier necesidad de procesamiento de texto adicional. Esta sintaxis es compatible con GNU coreutils y, por lo tanto, debería funcionar en la mayoría de las distribuciones de Linux.Como excepción en Linux, si uno está ejecutando zsh con el módulo opcional zsh / stat, entonces se necesita especificar una ruta para obtener los coreutils de GNU:
fuente
Con GNU
find
(anterior a GNUstat
por décadas):Relativamente portátil:
fuente
Es posible en una línea, porque puede poner varios comandos en una línea, por ejemplo, conectados por tuberías o sustituciones de comandos:
(Gracias @frostschutz por la actualización).
fuente
ZSize: 5
stat -c %s FILE
imprimir tamaño directamente, en lugar de lased
?Archivo único:
Múltiples archivos:
Este también funciona para un solo archivo. Sin embargo, no es completamente a prueba de balas, vea el comentario de Stephane .
Estos son comandos compatibles con el estándar POSIX.
fuente
a b
archivo comoa b
(secuencias de espacios en blanco convertidos en un solo espacio, espacios en blanco eliminados).NR == 1