Qual é a diferença entre ls e la? Por que eles dão a mesma saída?

18

Eu inseri la acidentalmente em vez de ls para visualizar o conteúdo de um diretório e ele produz exatamente a mesma saída que ls ...

Por que isso? Certamente não faz sentido ter dois comandos que fazem exatamente a mesma coisa.

    
por DevRobot 22.12.2016 / 16:17

6 respostas

33

la é um alias para ls -A definido no arquivo ~/.bashrc no Ubuntu.

Ele mostra apenas a mesma saída se você não tiver arquivos ou diretórios ocultos.

ls -A mostra arquivos e diretórios ocultos.

    
por Pilot6 22.12.2016 / 16:20
14

la é definido como um alias no arquivo Ubuntus ~/.bashrc junto com alguns outros. la é simplesmente um ls -A , como você pode ver no snippet a seguir do ~/.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'
    
por Videonauth 22.12.2016 / 16:20
7

Em caso de dúvida, type la .

Saída de bash:

la is aliased to 'ls -la'

Saída de peixe:

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
    
por user2394284 22.12.2016 / 20:47
5

ls é um comando, l e la são provavelmente aliases que usam o comando ls . Se você executar o comando alias , poderá encontrar todos os aliases em seu sistema.

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

Isso retornará todos os aliases que correspondem ao padrão l = ... ou la = ....

    
por Arijit Chatterjee 22.12.2016 / 16:24
3

Eles não produzem a mesma saída em todos os diretórios.

Crie um arquivo de pontos com touch .whatever e, em seguida, emita ambos la e ls .

    
por user4556274 22.12.2016 / 16:20
2

la é um alias para ls -A , conforme indicado por outras respostas. Como tal, não pode ser usado em scripts de shell, enquanto ls pode.

Seu computador possui vários comandos com alias. Uma lista completa pode ser obtida executando alias . Na minha máquina, imprime isso:

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 significa que a cor será desativada quando não estiver imprimindo diretamente no STDOUT.

    
por Mark Gardner 22.12.2016 / 19:04