Respuestas:
Quizás -hsea 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 commandnamepara leer el manual / ayuda de un determinado comando, por ejemplo, aquí man ls.
ls --block-size=Mimprime 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 -lhtambié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 -htiene 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 awkpara 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 lsse presenta Puede cambiar megaa "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 -lho ls --block-size=M, ¡pero AWK es muy útil!
intente ls -shRcon el formato recursivo legible por humanos.
-hen 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
-ses para el tamaño y hes 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 -lahace cuando se invoca sin argumentos de nombre de archivo.
Espero que esto ayude.
-hopción no existe en lsese sistema.
ls -l --block-size=MB
Para el --block-sizeparámetro:
MBpara 10 ^ 6Mpor 2 ^ 201MB . Por esta razón, me pareció ls -l --block-size=kBmás útil.
Si solo está interesado en el tamaño del archivo y no tiene que usar el lscomando, 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.