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