Какви команди са ми необходими, за да може Linux's ls
да показва размера на файла в MB?
ls -l --block-size=M
ще ви даде дълъг формат на списъка (необходим, за да видите размера на файла) и ще *закръгли размера на файла до най-близкия MiB.
Ако искате единици MB (10^6 байта), а не MiB (2^20 байта), използвайте вместо това --block-size=MB
.
Ако не желаете суфиксът M
да бъде прикрепен към размера на файла, можете да използвате нещо като --block-size=1M
. Благодаря на Stéphane Chazelas за това предложение.
Ако просто искате размерите на файловете да са в "разумни" единици, а не конкретно в мегабайти, тогава можете да използвате -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 Group's ls
, така че това може да не работи, ако нямате потребителска среда на GNU (а повечето инсталации на Linux имат такава). ls
от GNU Coreutils 8.5 поддържа --block-size и -h, както е описано по-горе. Благодарим на kojiro за посочването на това.
ls -lh
дава размери на файловете, които могат да се четат от човек, в дълъг формат.
Той използва суфикси k, M, G и T (или без суфикс за байтове), както е необходимо, така че числото да остане малко, например 1,4К
или 178М
.
-h
е разширение на GNU coreutils, а не на POSIX.
Обърнете внимание, че това не отговаря точно на зададения въпрос. Ако искате размери стриктно в MiB дори за малки или гигантски файлове, отговорът на Michael Kjörling'прави това за GNU coreutils ls
.