Відповіді:
Можливо, -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
Це дозволить надрукувати розмір файлу без необхідності нічого розбирати.