Разница между ls -l и ll?


59

Я относительно новичок в программировании в целом, и некоторые учебники говорили мне использовать ls -lдля просмотра файлов в каталоге, а другие говорили ll. Я знаю, что lsэто короткий список, но есть ли разница между двумя другими?


8
Вы можете взглянуть на which ll. Вы, вероятно, обнаружите, что llэто псевдоним для ls -l.
HalosGhost

Так в чем же разница между lsлюбой другой командой, которую я помещаю в оболочку? Если я печатаю, which lsя получаю alias ls='ls --color=auto' /bin/ls, но если я печатаю (например), which cdя получаю /usr/bin/which: no cd in (........). РЕДАКТИРОВАТЬ: я попробовал еще раз с, which mkdirи я получил /bin/mkdir. В чем различие между этими командами, в которых некоторые из них хранятся (?), А /usr/binнекоторые, по-видимому, нет?
Джон

это влияет на дефолт вашего дистрибутива $PATH. lsочень часто имеет псевдонимы, поэтому ваша оболочка сообщает псевдоним (который имеет приоритет над двоичным) и фактическое местоположение двоичного файла (в вашем случае, /bin/ls). Если whichне смог найти cd, то что-то кажется ужасно неправильным.
HalosGhost

2
cdявляется ключевым словом встроенной оболочки, а не программой, найденной в файловой системе. Используйте type cdи, type lsчтобы увидеть, что я имею в виду. Некоторые команды просто переопределяются встроенными оболочками: echoсуществуют в /bin/echo, но bashфактически в большинстве современных оболочек echoвместо них вызывается встроенная функция (которая обычно имеет расширенные возможности). typeна самом деле говорит вам, что это такое.
Орион

Ответы:


88

На многих системах llэто псевдоним ls -l:

$ type ll
ll is aliased to `ls -l'

Они одинаковые.


3
ll имеет псевдоним `ls -ltr '- я использую red hat 6
rdp

3
в Ubuntu 14.04 - псевдоним 'ls -alF'
Виктор

3
Также ls -alFв Ubuntu 12.04, 16.04 и, вероятно, еще много.
Пол

3
Для меня в macOS псевдоним Sierra llls -lh
Zorgatone,

13

Как уже отмечалось, llчасто определяется как псевдоним ls -l. На самом деле, lsчасто сам псевдоним:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

Фактическая команда, lsкоторая выше, находится в /usr/bin. llзадумано как удобство, но вы не можете полагаться на то, что оно определено во всех * nix системах, поэтому полезно знать, что он на самом деле делает.


Отличный ответ. Я не могу не добавить, что это одна из причин, почему полагаться на lsавтоматизацию (особенно на отдельные строки), как правило, плохая идея. У него есть несколько опций, которые изменяют его вывод, и множество способов их указать. С разными дистрибутивами, выбирающими разные значения по умолчанию, это приводит к головным болям.
ctt

Я не видел ни одного популярного дистрибутива для псевдонима lsдля чего-либо еще, кроме ls --color=auto. Это либо так, либо псевдоним отсутствует.
Фото

4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'

1
Также 12.04 и 16.04, но это все, что у меня есть для тестирования прямо сейчас.
Пол

3

В большинстве случаев llне работает в сценариях оболочки.


1
В результате обычно такие команды, как llнастоящие псевдонимы, не определяются при запуске сценариев.
vonbrand

3
Некоторые люди имеют псевдоним в .profile, и псевдоним работает в интерактивной оболочке. После отладки / тестирования нового скрипта скрипт неожиданно завершается сбоем в crontab. Крон не читает .profile.
Уолтер

1
Это не ответ на вопрос, но должен быть комментарий. Из моего небольшого понимания псевдонимы устарели в сценариях оболочки.
cornflakes24

Я говорю «большинство» , но это не по моему, и я используюls -l
travelingbones

1

llэто псевдоним для ls -l.

Опция -lуказывает команде использовать формат длинного списка. Он возвращает несколько столбцов, не показанных при использовании простой lsкоманды. Эти столбцы включают в себя:

  • права доступа

  • Количество жестких ссылок

  • Владелец файла

  • Файловая группа

  • Размер файла

  • модификация

  • время

  • Имя файла


0

На самом деле ll будет иметь псевдоним ls -l. Если вы запустите ll, он покажет вам файлы в оболочке, а затем нажмите Enter, чтобы увидеть следующие файлы (опция more ..). Если вы запустите ls -l, то все файлы будут отображаться одновременно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.