В чем разница между «dir» и «ls»?

17

Я сравнил МУЖЧИНА страницы dirи lsони кажутся точно такими же. Оба являются частью GNU coreutils и «список содержимого каталога».

Единственное отличие, которое я видел до сих пор, заключается в том, что dirон не окрашивает вывод.

Так почему же существуют две команды? Есть ли разница, которую я пропустил? Почему бы один предпочитает dirболее ls?

Мартин Тома
источник
8
Никто бы не стал! Когда-либо!
Bananguin

Ответы:

20

Я был бы склонен думать, что dirэто только для обратной совместимости .

Из GNU Coreutils :

dir эквивалентен ls -C -b; то есть по умолчанию файлы перечислены в столбцах, отсортированы по вертикали, а специальные символы представлены escape-последовательностями с обратной косой чертой.

Кстати, lsне раскрасить выход по умолчанию: это потому , что большинство дистрибутивов псевдонима lsдля ls --color=autoв /etc/profile.d. Для теста наберите и unalias lsпопробуйте ls: он будет бесцветным.

Ренан
источник
6
dirне предусмотрен для обратной совместимости. Вместо этого он lsработает так же, как и для обратной совместимости (и потому, что многие пользователи хотят, чтобы он работал именно так), и dirпредоставляется в качестве альтернативы, которую разработчики GNU считают в целом предпочтительной, поскольку его вывод не зависит от устройства. См. 4.5 Стандарты для интерфейсов в целом в стандартах кодирования GNU и мой ответ на этот вопрос AU для деталей.
Элия ​​Каган,
8

dirэто не стандартная команда Unix, но, вероятно, просто своего рода псевдоним / клон, чтобы обеспечить некоторое знакомство с пользователями Windows (DOS) (и, возможно, VAX-VMS и другими операционными системами, где dirиспользовался список файлов).

jlliagre
источник