Какая разница между ЛС и ЛА? Почему они дают одинаковый результат?

19

Я laслучайно вошел вместо того, lsчтобы просматривать содержимое каталога, и он выдает точно такой же вывод, как ls...

Почему это? Конечно, нет смысла иметь две команды, которые делают одно и то же.

Скажи мне почему
источник
Также смотрите: unix.stackexchange.com/questions/109216/…
muru
3
Просто type la. И вы получите это.
Pandya

Ответы:

34

laпсевдоним, ls -Aопределенный в ~/.bashrcфайле в Ubuntu.

Он показывает тот же вывод, если у вас нет скрытых файлов или каталогов.

ls -A показывает скрытые файлы и каталоги.

Pilot6
источник
3
Больше похоже на «он не обязательно показывает тот же результат», поскольку, если у вас нет никаких скрытых файлов (те, которые начинаются с точки), кроме. и .., результат будет таким же.
Muzer
1
Это правда. Обновлено.
Pilot6
2
Обратите внимание, что ls -Aотличается от ls -a- последний покажет .и ..означает этот каталог и содержащий каталог соответственно.
Тим
14

laопределяется как псевдоним в ~/.bashrcфайле Ubuntus вместе с несколькими другими. laэто просто, ls -Aкак вы можете видеть в следующем фрагменте из~/.bashrc

# this alias is defined earlier to grant colored output
alias ls='ls --color=auto'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias li='ls -lF'
Videonauth
источник
Это было бы Ubuntu's(без форматирования кода).
Питер Мортенсен
8

Если есть сомнения type la.


Выход Bash:

la is aliased to `ls -la'

Выход рыбы:

la is a function with definition
function la --description 'List contents of directory, including hidden files in directory using long format'
    ls -lah $argv
end
user2394284
источник
6

lsявляется командой, lи la, скорее всего, псевдонимы, которые используют команду ls. Если вы запустите команду, aliasвы сможете найти все псевдонимы в вашей системе.

$ alias | grep -E ' l=| la='

Это вернет все псевдонимы, которые соответствуют шаблону l = ... или la = ....

Арижит Чаттерджи
источник
1
Или простоalias l la
Кевин
4

Они не выдают одинаковый вывод во всех каталогах.

Создайте точечный файл с помощью touch .whatever, затем выполните оба laи ls.

user4556274
источник
2

laэто псевдоним для ls -A, как указано в других ответах. Как таковой, он не может быть использован в сценариях оболочки, а lsможет.

Ваш компьютер имеет несколько команд с псевдонимами. Полный список можно получить, выполнив alias. На моей машине это печатает это:

alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'  
alias egrep='egrep --color=auto'  
alias fgrep='fgrep --color=auto'  
alias grep='grep --color=auto'  
alias l='ls -CF'  
alias la='ls -A'   
alias ll='ls -alF'   
alias ls='ls --color=auto'

--color=auto означает, что цвет будет отключен, если печать не выполняется напрямую в STDOUT.

Марк Гарднер
источник