Я случайно ввел la вместо ls, чтобы просмотреть содержимое каталога, и он производит точно такой же результат, как ls ...
Почему это? Разумеется, нет смысла иметь две команды, которые делают то же самое.
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'
Если есть сомнения, 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
ls - команда, l и la, скорее всего, псевдонимы, которые используют команду ls. Если вы запустите команду alias, вы можете найти все псевдонимы в своей системе.
$ alias | grep -E ' l=| la='
Это вернет все псевдонимы, соответствующие шаблону l = ... или la = ....
Они не производят одинаковый вывод во всех каталогах.
Создайте dotfile с touch .whatever, затем выпустите оба la и ls.
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.