ls-command: как показать размер файла в мегабайтах?
В Unix (Tru64), как заставить команду ls
показать размер файла в мегабайтах? В настоящее время я могу показать его в байтах, используя следующую команду:
ls -la
В Unix (Tru64), как заставить команду ls
показать размер файла в мегабайтах? В настоящее время я могу показать его в байтах, используя следующую команду:
ls -la
Может быть, для вас достаточно -h
:
-h При использовании с опцией -l используйте суффиксы единиц измерения: Байт, Килобайт, Мегабайт, Гигабайт, Терабайт и Петабайт, чтобы уменьшить количество цифр до трех или менее, используя базу 2 для размеров.
ls -lah
Общий совет: Используйте man commandname
для чтения руководства/справки к определенной команде, например, здесь man ls
.
ls --block-size=M
печатает размеры в мегабайтах, но показывает 1 МБ также для всего, что меньше 1 МБ. Хотя я не уверен, что эта опция допустима в вашей UNIX-версии ls.
На самом деле ls -lh
также печатает размеры в Гигабайтах, если файл достаточно большой (В любом случае: на Linux 64-бит это работает :>)
На боковом узле: du -sh *
печатает также размеры каталога в текущем каталоге.
Вам нужно будет использовать awk
для подсчета:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Это не повлияет на вывод для файлов, которые меньше mega
.
Вам, возможно, понадобится настроить номер поля в соответствии с тем, как расположена ваша ls
. Вы можете изменить mega
на “1000000”, если это предпочтительнее.
Это позволит печатать больше десятичных разрядов, чем вы, вероятно, захотите. Вы можете реализовать функцию округления.
Если вам нужен только размер конкретного файла, то команда, тривиальная экстраполяция предыдущих ответов:
ls -sh _filename(s)_
-s
- для размера, а h
- для Human Readable (как упоминалось выше несколько раз).
Вывод будет выглядеть следующим образом:
753M myfilename
Если вы пропустите имя(и) файла(ов), он перечислит каталог, поместив размер каждого файла рядом с его именем - не в отличие от того, что делает ls -la
при вызове без аргументов по имени файла.
Надеюсь, это поможет.
Если вас интересует только размер файла, и вам не нужно использовать команду 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
Это распечатает размер файла без необходимости разбора.