ls-команда: как отобразить размер файла в мегабайтах?
В Unix (Tru64), как мне сделать ls
команда показать размер файла в мегабайтах? В настоящее время я могу показать его в байтах, используя следующее:
ls -la
10 ответов
Может быть -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
для рекурсивного человека читаемого формата.
Вы также можете ввести
du -sh ./*
При этом будут перечислены все папки в текущем каталоге в удобочитаемом формате, включая более привычные размеры файлов в килобайтах, мб, гб.
Если вам нужен только размер определенного файла, тогда команда, тривиальная экстраполяция предыдущих ответов, выглядит так:
ls -sh имя файла (ов)
-s
для размера и h
предназначен для чтения человеком (как упомянуто выше несколько раз).
Вывод будет выглядеть так:
753M myfilename
Если вы пропустите имя файла (ов), он перечислит каталог, поместив размер каждого файла рядом с его именем - в отличие от того, что ls -la
делает, когда вызывается без аргументов имени файла.
Надеюсь это поможет.
ls -l --block-size=MB
Для --block-size
параметр:
- использование
MB
за 10^6 - использовать только
M
за 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
Это напечатает размер файла без необходимости разбора чего-либо.