В чем разница между ls и la? Почему они дают тот же результат?

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

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

1
задан 24 December 2016 в 19:32

5 ответов

la определяется как псевдоним в файле Ubuntu ~/.bashrc вместе с несколькими другими. 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'
14
ответ дан 23 May 2018 в 03:06

Если есть сомнения, 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
7
ответ дан 23 May 2018 в 03:06

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

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

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

5
ответ дан 23 May 2018 в 03:06

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

Создайте dotfile с touch .whatever, затем выпустите оба la и ls.

3
ответ дан 23 May 2018 в 03:06

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.

2
ответ дан 23 May 2018 в 03:06

Другие вопросы по тегам:

Похожие вопросы: