Ответы:
Может быть -h, вам достаточно
-h
При использовании с параметром -l используйте суффиксы единиц измерения: байты, килобайты, мегабайты, гигабайты, терабайты и петабайты, чтобы уменьшить количество цифр до трех или менее, используя основание 2 для размеров.
ls -lah
Общий совет: Используйте man commandnameдля чтения руководства / справки по определенной команде, например, здесь man ls.
ls --block-size=Mпечатает размеры в мегабайтах, но показывает 1 МБ также для всего, что меньше 1 МБ. Я не уверен, что эта опция приемлема в вашей UNIX-версии ls.
На самом деле ls -lhтакже печатает размеры в гигабайтах, если файл достаточно большой (ну в любом случае: в Linux 64bit это работает:>)
На боковом узле: du -sh *печатает также размеры каталога в текущем каталоге.
ls -hстановится бессмысленным после того, как while true ; do ls -al --block-size=M ; sleep 1 ; done
Вам придется использовать, awkчтобы сделать математику для вас:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Это не повлияет на вывод для файлов, которые меньше, чем mega.
Возможно, вам придется настроить номер поля в соответствии с тем, как вы lsвыложены. Вы можете изменить megaна «1000000», если это ваше предпочтение.
Это напечатает больше десятичных разрядов, чем вы, вероятно, хотите. Вы могли бы реализовать функцию округления.
ls -lhили ls --block-size=M, но AWK очень полезен!
попробуйте ls -shRрекурсивный читабельный формат.
-hна Tru64 , и сделал это в течение двух лет, прежде чем этот ответ был опубликован.
du -sm filename.txt
Если вам нужен только размер определенного файла, тогда команда, тривиальная экстраполяция предыдущих ответов, выглядит так:
ls -sh имя файла (ов)
-sпредназначен для размера, а hдля человека удобочитаем (как упоминалось выше несколько раз).
Вывод будет выглядеть так:
753M myfilename
Если вы пропустите имя файла (ов), он перечислит каталог, поместив размер каждого файла рядом с его именем - в отличие от того, что ls -laпроисходит, когда вызывается без аргументов имени файла.
Надеюсь это поможет.
-hопция не существует в lsэтой системе.
ls -l --block-size=MB
Для --block-sizeпараметра:
MBдля 10 ^ 6Mдля 2 ^ 201MB , что выше 0 кБ, но не больше 1 МБ, будет показано как . По этой причине я нашел ls -l --block-size=kBболее полезным.
Если вас просто интересует размер файла, и вам не нужно использовать 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
Это напечатает размер файла без необходимости разбора чего-либо.