Respuestas:
Quizás -h
sea suficiente para ti:
-h
Cuando se usa con la opción -l, use sufijos de unidad: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte y Petabyte para reducir el número de dígitos a tres o menos usando la base 2 para los tamaños.
ls -lah
Consejo general: Utilícelo man commandname
para leer el manual / ayuda de un determinado comando, por ejemplo, aquí man ls
.
ls --block-size=M
imprime los tamaños en megabytes pero muestra 1 MB también para cualquier cosa por debajo de 1 MB Sin embargo, no estoy seguro de si esta opción es aceptable en su versión UNIX de ls.
En realidad, ls -lh
también imprime tamaños en Gigabytes si el archivo es lo suficientemente grande (Bueno, de todos modos: en Linux 64 bits esto funciona:>)
En un nodo lateral: du -sh *
imprime también los tamaños de directorio en el directorio actual.
ls -h
tiene sentido después de que un archivo crece más de 1 GB, así que uso este comando en un bucle de 1 segundo:while true ; do ls -al --block-size=M ; sleep 1 ; done
Tendrás que usar awk
para hacer los cálculos por ti:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Esto no afectará la salida de archivos que son más pequeños que mega
.
Es posible que deba ajustar el número de campo para que coincida con la forma en que ls
se presenta Puede cambiar mega
a "1000000" si esa es su preferencia.
Esto imprimirá más decimales de los que probablemente desee. Podría implementar una función de redondeo.
ls -lh
o ls --block-size=M
, ¡pero AWK es muy útil!
intente ls -shR
con el formato recursivo legible por humanos.
-h
en Tru64 , y lo hizo más de dos años antes de que se publicara esta respuesta.
Si solo desea el tamaño de un archivo específico, entonces el comando, una extrapolación trivial de las respuestas anteriores, es:
ls -sh nombre (s) de archivo
-s
es para el tamaño y h
es para lectura humana (como se mencionó anteriormente varias veces).
La salida se verá así:
753M myfilename
Si omite los nombres de archivo, enumerará el directorio, colocando el tamaño de cada archivo junto a su nombre, no muy diferente de lo que ls -la
hace cuando se invoca sin argumentos de nombre de archivo.
Espero que esto ayude.
-h
opción no existe en ls
ese sistema.
ls -l --block-size=MB
Para el --block-size
parámetro:
MB
para 10 ^ 6M
por 2 ^ 201MB
. Por esta razón, me pareció ls -l --block-size=kB
más útil.
Si solo está interesado en el tamaño del archivo y no tiene que usar el ls
comando, intente lo siguiente:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Esto imprimirá el tamaño del archivo sin la necesidad de analizar nada.