Почему нужен `--human-readable`, а не по умолчанию?

56

Некоторые инструменты командной строки используют параметр -hor --human-readableдля печати размера файла в удобочитаемом формате (т. 36GЕ. Vs 37550836).

  • Почему эта опция нужна, а не по умолчанию?
  • Разве эти инструменты не предназначены в основном для вывода людям?
DQdlM
источник

Ответы:

75
  1. Потому что они изначально не существовали, а поведение по умолчанию обратно совместимо. Кроме того, поскольку они существуют не во всех вариантах Unix, а поведение по умолчанию совместимо с другими вариантами Unix.
  2. Для многих инструментов, потому что они предназначены для разбора другими инструментами. Это редко случается ls, но анализирует вывод duили dfявляется относительно распространенным явлением. (Имейте в виду, для df, вы должны использовать df -Pпри разборе.)
  3. Потому что некоторые люди предпочитают формат 37550836, потому что, когда вы видите кучу таких чисел, их относительный размер визуально ясен (количество цифр).
Жиль "ТАК - перестань быть злым"
источник
22
Особенно 3) когда я перенаправляю вывод напрямую, sort -nпотому что мне меньше интересно быстро видеть приблизительный размер каждого каталога и больше, когда подкаталог занимает непропорционально слишком много места ...
Шадур
8
@Shadur Ах, но сортировка -hтоже!
quodlibetor
3
Я думаю, что 2 (например, для сценариев) является основной причиной.
Sml
@quodlibetor Какая ОС / дистрибутив? Kubuntu lucid sort не принимает -h, и я не вижу эквивалента.
Джо
7
@ user23861 sort -hбыл представлен в GNU coreutils 7.5. У Lucid есть 7.4, поэтому в Ubuntu вам нужен как минимум индивидуалист.
Жиль "ТАК - перестань быть злым"
13

Обратите внимание, что если вы установите BLOCKSIZE = удобочитаемый в вашей среде, это будет по умолчанию, по крайней мере, для команд из GNU coreutils, т.е. если вы используете bash put:

export BLOCKSIZE=human-readable

в вашем файле $ HOME / .bashrc.

Тор
источник
2
Похоже, BLOCKSIZE=hможет быть достаточно. Но отличный совет!
Микель
В документы свидетельствуют BLOCK_SIZE=human-readable. Также не знал о поддержке тысяч разделителей, пока я не прочитал это.
Микель
Кажется, не работает на OSX
Джеймс Лин
@jameslin: это может быть специфичная для GNU coreutils переменная. Вы можете создать псевдоним ...
Тор
6

Помимо того, что сказал Жиль:

При этих инструментах жесткий диск был изобретен очень мало по сравнению с сегодняшним днем. Вам не нужна была помощь, чтобы прочитать число вроде 400000.

И если вам это не нравится, используйте систему псевдонимов. В вашем домашнем каталоге,

edit ~/.bashrc 

и вставьте, например:

alias df='df -h'
alias du='du -h'

Обратите внимание, что в отличие от многих других языков, вы не можете иметь пробел перед или после оператора присваивания (знак равенства).

неизвестный пользователь
источник