Sé que puedo usar ls -latpara 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,awkpuede hacer matemáticas por sí mismo:du -b FILE | awk '{print $1 * 8}wc -c < FILEpara un equivalente portátil (para archivos no regulares, sin embargo, tiene el efecto secundario de leerlos)Una solución shell + GNU coreutils:
La
-c%sopción destatdevolver 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 GNUstatpor 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: 5stat -c %s FILEimprimir 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 barchivo comoa b(secuencias de espacios en blanco convertidos en un solo espacio, espacios en blanco eliminados).NR == 1