Які команди потрібні для того, щоб Linux ls
показував розмір файлу в МБ?
ls -l --block-size=M
видасть вам довгий формат лістингу (необхідний для того, щоб реально побачити розмір файлу) і *округлить розмір файлу до найближчого MiB.
Якщо вам потрібні MB (10^6 байт), а не MiB (2^20 байт) одиниці, використовуйте --block-size=MB
замість цього.
Якщо ви не хочете, щоб до розміру файлу додавався суфікс M
, ви можете використовувати щось на зразок --block-size=1M
. Дякуємо Stéphane Chazelas за пропозицію.
Якщо вам просто потрібні розміри файлів у &quo ;розумних&quo ; одиницях, а не в конкретно мегабайтах, то ви можете використовувати -lh
для отримання довгоформатного списку і зручного для читання представлення розміру файлу. При цьому будуть використовуватися одиниці розміру файлу, щоб зберегти розмір файлу, представлений приблизно 1-3 цифрами (тому ви побачите такі розміри файлів, як 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
і так далі).
Параметр --block-size
описано на сторінці man для ls; man ls
і шукайте SIZE
. Він дозволяє використовувати одиниці, відмінні від MB/MiB, а також, судячи з усього (я не пробував), довільні розміри блоків (так що ви можете побачити розмір файлу як кількість 429-байтових блоків, якщо захочете).
Зауважте, що як --block-size
, так і -h
є розширеннями GNU на додачу до the Open Group's ls
, тож це може не спрацювати, якщо у вас немає користувацького середовища GNU (яке є у більшості інсталяцій Linux). Команда ls
з GNU Coreutils 8.5 підтримує --block-size і -h, як описано вище. Дякуємо kojiro за те, що вказав на це.
ls -lh
дає читабельні для людини розміри файлів, довгий формат.
Він використовує суфікси k, M, G і T (або без суфіксів для байтів) за необхідності, щоб число залишалося невеликим, наприклад, 1.4K
або 178M
.
-h
є розширенням GNU coreutils, а не базового POSIX.
Зауважте, що це не дає точної відповіді на поставлене запитання. Якщо вам потрібні розміри строго у МіБ навіть для малих або гігантських файлів, Michael Kjörling's answer does that for GNU coreutils ls
.