¿Qué comandos necesito para que Linux lsmuestre el tamaño del archivo en MB?
ls -l --block-size=Mle dará una lista de formato largo (necesaria para ver realmente el tamaño del archivo) y redondeará los tamaños de archivo al MiB más cercano.
Si desea unidades de MB (10 ^ 6 bytes) en lugar de MiB (2 ^ 20 bytes), use --block-size=MBen su lugar.
Si no desea que el Msufijo se adjunte al tamaño del archivo, puede usar algo como --block-size=1M. Gracias Stéphane Chazelas por sugerir esto.
Si simplemente desea tamaños de archivo en unidades "razonables", en lugar de específicamente megabytes , puede usar -lhpara obtener una lista de formato largo y una presentación de tamaño de archivo legible por humanos . Esto utilizará unidades de tamaño de archivo para mantener los tamaños de archivo que se presentan con alrededor de 1-3 dígitos (por lo que verá tamaños de archivo como 6.1K, 151K, 7.1M, 15M, 1.5Gy así sucesivamente.
El --block-sizeparámetro se describe en la página del manual para ls; man lsy buscar SIZE. También permite unidades que no sean MB / MiB, y por lo que parece (no lo intenté) también tamaños de bloque arbitrarios (para que pueda ver el tamaño del archivo como un número de bloques de 429 bytes si lo desea a).
Tenga en cuenta que tanto --block-sizey -hson extensiones de GNU en la parte superior de la Open Grupo dels , por lo que este puede no funcionar si usted no tiene un espacio de usuario de GNU (que la mayoría de las instalaciones de Linux lo hacen). El lsde GNU Coreutils 8.5 admite --block-size y -h como se describió anteriormente. Gracias a kojiro por señalar esto.
--block-size=MhagaMque se muestre un sufijo junto al tamaño, y puede usarlo--block-size=1Mpara omitirlo. Vale la pena mencionar también que necesita GNU ls para eso (la mayoría de los sistemas Linux no integrados tendrán GNU ls).ls? Standardlsno tiene tal argumento. Con la extensión xsilstiene la-sbandera, lo que hace que informe el número de bloques, pero no hay una bandera estándar--block-size.--block-sizepartir de coreutils 8.5, que es lo que está instalado en mi sistema Debian Squeeze. Como la pregunta era explícitamente para Linux y no especificaba nada más, admito que asumí una tierra de usuarios centrada en los núcleos GNU. He actualizado la respuesta para aclarar esto. (Además, Open Group ls tampoco parece tener -h tampoco.:))--block-sizees una extensión GNU. Sospecho que Mac OS X no usa GNUls.ls -lhda tamaños de archivo legibles por humanos, formato largo.Utiliza los sufijos k, M, G y T (o ningún sufijo para bytes) según sea necesario para que el número permanezca pequeño, por ejemplo,
1.4Ko178M.-hes una extensión de GNU coreutils, no la línea de base POSIX.Tenga en cuenta que esto no responde la pregunta exactamente como se le preguntó. Si desea tamaños estrictamente en MiB incluso para archivos pequeños o gigantes, la respuesta de Michael Kjörling lo hace para los coreutils de GNU
ls.fuente
hes mucho más fácil de escribir que--block-size=Mls -len absoluto si no los humanos? : pls -lsalida es la forma incorrecta de hacer las cosas, el 99% del tiempo. unix.stackexchange.com/questions/128985/why-not-parse-ls . Ese 1% está siendo generoso, y está bastante limitado a frases que escribes interactivamente para un solo uso, no un script que vas a usar repetidamente en nombres de archivo desconocidos.ls -lhSordenar por tamaño, en formato legible para humanosfuente
ls -lhrespuesta por las razones por las cuales esto realmente no responde la pregunta.Y esta es la opción para enumerar todo en un orden de directorio por tamaño de archivo (aún legible por humanos) ascendente.
fuente