Какие команды мне нужны для Linux, lsчтобы показать размер файла в МБ?
Какие команды мне нужны для 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 , как описано выше. Спасибо Кодзиро за то, что указал на это.
ls? Стандартls не имеет такого аргумента. У расширения xsi ls есть -sфлаг, который заставляет его сообщать о количестве блоков, но стандартного флага нет --block-size.
--block-sizecoreutils 8.5, которая установлена в моей системе Debian Squeeze. Поскольку этот вопрос был явно для Linux и не указал ничего другого, я признаю, что предположил, что пользовательская область сосредоточена вокруг GNU coreutils. Я обновил ответ, чтобы уточнить это. (Кроме того, у Open Group ls, похоже, тоже нет -h. :))
--block-sizeэто расширение GNU. Я подозреваю, что Mac OS X не использует GNU ls.
ls -lh дает читабельный размер файла, длинный формат.
При необходимости используются суффиксы k, M, G и T (или без суффикса для байтов), поэтому число остается небольшим, например, 1.4Kили 178M.
-h является расширением GNU coreutils, а не базовым POSIX.
Обратите внимание, что это не отвечает на вопрос точно так, как задано. Если вам нужны размеры строго в MiB даже для небольших или гигантских файлов, ответ Михаэля Кьёрлинга делает это для GNU coreutilsls .
hего гораздо проще написать, чем--block-size=M
ls -lвообще использует, если не люди? : p
ls -lвыходных данных - неправильный способ делать вещи, 99% времени. unix.stackexchange.com/questions/128985/why-not-parse-ls . Этот 1% является щедрым, и в значительной степени ограничивается однострочными, которые вы пишете интерактивно для одноразового использования, а не сценарием, который вы собираетесь многократно использовать для неизвестных имен файлов.
ls -lhS сортировка по размеру, в удобочитаемом формате
ls -lhответу по причинам, почему это на самом деле не отвечает на вопрос.
И это опция для перечисления всего в порядке каталога по размеру файла (все еще читаемому человеком) по возрастанию.
ls -lSrh
--block-size=MзаставитьMсуффикс отображаться рядом с размером, и вы можете использовать его,--block-size=1Mчтобы опустить его. Также стоит упомянуть, что для этого вам нужны GNU ls (большинство не встроенных систем Linux будут иметь GNU ls).