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

18

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

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

    
задан DevRobot 22.12.2016 в 16:17
источник

6 ответов

33

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

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

ls -A отображает скрытые файлы и каталоги.

    
ответ дан Pilot6 22.12.2016 в 16:20
источник
14

la определяется как псевдоним в файле Ubuntus ~/.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'
    
ответ дан Videonauth 22.12.2016 в 16:20
7

Если есть сомнения, 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 22.12.2016 в 20:47
5

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

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

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

    
ответ дан Arijit Chatterjee 22.12.2016 в 16:24
3

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

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

    
ответ дан user4556274 22.12.2016 в 16:20
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.

    
ответ дан Mark Gardner 22.12.2016 в 19:04