Ответы:
Может быть -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
Это напечатает размер файла без необходимости разбора чего-либо.