Які команди мені потрібні, щоб Linux lsпоказав розмір файлу в МБ?
Які команди мені потрібні, щоб Linux lsпоказав розмір файлу в МБ?
Відповіді:
ls -l --block-size=Mдасть вам довгий перелік формату (необхідний, щоб фактично побачити розмір файлу) та круглі розміри файлів до найближчого MiB.
Якщо ви хочете МБ (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 поверх відкритої групиls , тому це може не спрацювати, якщо у вас немає країни користувача GNU (як це робить більшість установок Linux). lsВід GNU Coreutils 8.5 підтримує --block-розмір і -h , як описано вище. Завдяки kiro, що вказав на це.
ls? Стандартls не має такого аргументу. З розширенням xsi ls є -sпрапор, завдяки чому він повідомляє кількість блоків, але стандартного прапора немає --block-size.
--block-sizeCoreutils 8.5, що встановлено в моїй системі Debian Squeeze. Оскільки питання було явним для Linux і не вказало нічого іншого, я визнаю, що я припустив, що користувальницька область зосереджена навколо ядер GNU. Я оновив відповідь, щоб уточнити це. (Окрім того, у Open Group також не є -h. :))
--block-sizeце розширення GNU. Я підозрюю, що Mac OS X не використовує GNU ls.
ls -lh надає читабельні людиною розміри файлів, довгий формат.
Він використовує суфікси k, M, G і T (або суфікс для байтів) за необхідності, тому число залишається невеликим, наприклад, 1.4Kабо 178M.
-h є розширенням GNU coreutils, а не базовим POSIX.
Зауважте, що це не відповідає на запитання точно так, як задано. Якщо ви хочете, щоб розміри були строго в MiB навіть для невеликих або гігантських файлів, відповідь Майкла Кьорлінга робить це для ядер GNUls .
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 (більшість невбудованих систем Linux матимуть GNU ls).