Відповіді:
Можливо, -hвам достатньо:
-h
Якщо використовується параметр -l, використовуйте одиничні суфікси: Байт, Кілобайт, Мегабайт, Гігабайт, Терабайт і Петабайт, щоб зменшити кількість цифр до трьох або менше, використовуючи основу 2 для розмірів.
ls -lah
Загальна порада: Використовуйте man commandnameдля читання посібника / довідки певної команди, наприклад тут man ls.
ls --block-size=Mдрукує розміри в Мегабайт, але показує 1 Мб також для всього, що не перевищує 1 Мб. Я не впевнений, що цей варіант є прийнятним у вашій версії l-файлу UNIX.
Насправді ls -lhтакож друкує розміри в Гігабайти, якщо файл достатньо великий (Ну і все одно: в Linux 64bit це працює:>)
На бічному вузлі: du -sh *друкує також розміри каталогів у поточному каталозі.
ls -hбезглуздо, коли файл зростає понад 1 Гб, тому я використовую цю команду в циклі 1 секунди:while true ; do ls -al --block-size=M ; sleep 1 ; done
Вам доведеться використовувати awkматематику для вас:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Це не вплине на вихід для файлів, менших за mega.
Можливо, вам доведеться відрегулювати номер поля, щоб він відповідав тому, як lsвикладені. Ви можете змінити megaна "1000000", якщо це ваше вподобання.
Це надрукує більше десяткових знаків, ніж ви, мабуть, хочете. Ви можете реалізувати функцію округлення.
ls -lhабо ls --block-size=M, але AWK дуже корисний!
спробуйте ls -shRдля рекурсивного людського читаного формату.
-hна Tru64 , і зробило це за два роки до опублікування цієї відповіді.
Якщо ви просто хочете розміру лише певного файлу, тоді команда, тривіальна екстраполяція попередніх відповідей, така:
ls -sh імена файлів
-s- це за розміром, а hдля людини - читабельним (як уже згадувалося вище кілька разів).
Вихід буде виглядати приблизно так:
753M myfilename
Якщо ви не залишите імена файлів, вони перерахують каталог, розміщуючи розмір кожного файлу поруч із його ім'ям - не на відміну від того, що ls -laвідбувається при виклику без аргументів імені файлу.
Сподіваюся, це допомагає.
-hваріант не існує ls.
ls -l --block-size=MB
Для --block-sizeпараметра:
MBдля 10 ^ 6Mдля 2 ^ 201MB , що перевищує 0 кБ, але не перевищує 1 МБ, буде показано як . З цієї причини я виявився ls -l --block-size=kBкориснішим.
Якщо вас просто цікавить розмір файлу, і вам не потрібно використовувати lsкоманду, спробуйте наступне:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Це дозволить надрукувати розмір файлу без необхідності нічого розбирати.