2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

ls-command: как показать размер файла в мегабайтах?

В Unix (Tru64), как заставить команду ls показать размер файла в мегабайтах? В настоящее время я могу показать его в байтах, используя следующую команду:

ls -la

Ответы (9)

250
250
250
2010-09-20 11:22:20 +0000

Может быть, для вас достаточно -h:

-h При использовании с опцией -l используйте суффиксы единиц измерения: Байт, Килобайт, Мегабайт, Гигабайт, Терабайт и Петабайт, чтобы уменьшить количество цифр до трех или менее, используя базу 2 для размеров.

ls -lah

Общий совет: Используйте man commandname для чтения руководства/справки к определенной команде, например, здесь man ls.

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M печатает размеры в мегабайтах, но показывает 1 МБ также для всего, что меньше 1 МБ. Хотя я не уверен, что эта опция допустима в вашей UNIX-версии ls.

На самом деле ls -lh также печатает размеры в Гигабайтах, если файл достаточно большой (В любом случае: на Linux 64-бит это работает :>)

На боковом узле: du -sh * печатает также размеры каталога в текущем каталоге.

15
15
15
2010-09-20 13:36:26 +0000

Вам нужно будет использовать awk для подсчета:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

Это не повлияет на вывод для файлов, которые меньше mega.

Вам, возможно, понадобится настроить номер поля в соответствии с тем, как расположена ваша ls. Вы можете изменить mega на “1000000”, если это предпочтительнее.

Это позволит печатать больше десятичных разрядов, чем вы, вероятно, захотите. Вы можете реализовать функцию округления.

13
13
13
2012-10-14 08:27:30 +0000

попробуйте ls -shR для рекурсивного читаемого человеком формата.

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

Вы также можете ввести

du -sh ./*

Это приведет список всех папок в текущем каталоге, с удобочитаемым форматом, включая более знакомые размеры файлов в Kb, Mb, Gb.

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Для параметра --block-size:

  • используйте MB для 10^6
  • используйте только M для 2^20
2
2
2
2015-06-13 07:36:58 +0000

Если вам нужен только размер конкретного файла, то команда, тривиальная экстраполяция предыдущих ответов:

ls -sh _filename(s)_

-s - для размера, а h - для Human Readable (как упоминалось выше несколько раз).

Вывод будет выглядеть следующим образом:

753M myfilename

Если вы пропустите имя(и) файла(ов), он перечислит каталог, поместив размер каждого файла рядом с его именем - не в отличие от того, что делает ls -la при вызове без аргументов по имени файла.

Надеюсь, это поможет.

0
0
0
2016-03-10 17:34:39 +0000

Если вас интересует только размер файла, и вам не нужно использовать команду ls, попробуйте следующее:

# 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

Это распечатает размер файла без необходимости разбора.

Похожие вопросы

10
7
5
15
13