Какие команды мне нужны для Linux, ls
чтобы показать размер файла в МБ?
ls -l --block-size=M
предоставит вам длинный список форматов (необходимый для фактического просмотра размера файла) и округления размеров файла до ближайшего MiB.
Если вы хотите использовать единицы измерения MB (10 ^ 6 байт), а не MiB (2 ^ 20 байт), используйте --block-size=MB
вместо этого.
Если вы не хотите, чтобы M
суффикс был присоединен к размеру файла, вы можете использовать что-то вроде --block-size=1M
. Спасибо Стефану Шазеласу за предложение.
Если вы просто хотите, чтобы размеры файлов были в «разумных» единицах, а не в мегабайтах , вы можете использовать их -lh
для получения длинного списка форматов и удобного для восприятия размера файла. Это будет использовать единицы размера файла , чтобы сохранить размеры файлов представлены около 1-3 цифр (так что вы увидите размеры файлов , как 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
и так далее.
--block-size
Параметр описан в странице человека для Ls; man ls
и искать SIZE
. Он также позволяет использовать модули, отличные от MB / MiB, и, судя по всему (я не пробовал), произвольные размеры блоков (так что вы можете увидеть размер файла в виде числа блоков размером 429 байт, если хотите). к).
Обратите внимание, что оба --block-size
и -h
являются расширениями GNU поверх Open Groupls
, поэтому это может не сработать, если у вас нет пользовательского пространства GNU (что делают большинство установок Linux). ls
От GNU Coreutils 8.5 поддерживает --block-размер и -h , как описано выше. Спасибо Кодзиро за то, что указал на это.
--block-size=M
заставитьM
суффикс отображаться рядом с размером, и вы можете использовать его,--block-size=1M
чтобы опустить его. Также стоит упомянуть, что для этого вам нужны GNU ls (большинство не встроенных систем Linux будут иметь GNU ls).ls
? Стандартls
не имеет такого аргумента. У расширения xsils
есть-s
флаг, который заставляет его сообщать о количестве блоков, но стандартного флага нет--block-size
.--block-size
coreutils 8.5, которая установлена в моей системе Debian Squeeze. Поскольку этот вопрос был явно для Linux и не указал ничего другого, я признаю, что предположил, что пользовательская область сосредоточена вокруг GNU coreutils. Я обновил ответ, чтобы уточнить это. (Кроме того, у Open Group ls, похоже, тоже нет -h.:)
)--block-size
это расширение GNU. Я подозреваю, что Mac OS X не использует GNUls
.ls -lh
дает читабельный размер файла, длинный формат.При необходимости используются суффиксы k, M, G и T (или без суффикса для байтов), поэтому число остается небольшим, например,
1.4K
или178M
.-h
является расширением GNU coreutils, а не базовым POSIX.Обратите внимание, что это не отвечает на вопрос точно так, как задано. Если вам нужны размеры строго в MiB даже для небольших или гигантских файлов, ответ Михаэля Кьёрлинга делает это для GNU coreutils
ls
.источник
h
его гораздо проще написать, чем--block-size=M
ls -l
вообще использует, если не люди? : pls -l
выходных данных - неправильный способ делать вещи, 99% времени. unix.stackexchange.com/questions/128985/why-not-parse-ls . Этот 1% является щедрым, и в значительной степени ограничивается однострочными, которые вы пишете интерактивно для одноразового использования, а не сценарием, который вы собираетесь многократно использовать для неизвестных имен файлов.ls -lhS
сортировка по размеру, в удобочитаемом форматеисточник
ls -lh
ответу по причинам, почему это на самом деле не отвечает на вопрос.И это опция для перечисления всего в порядке каталога по размеру файла (все еще читаемому человеком) по возрастанию.
источник