Qual è la differenza tra ls e la? Perché danno lo stesso risultato?

18

Ho inserito la per errore invece di ls per visualizzare il contenuto di una directory e produce esattamente lo stesso risultato di ls ...

Perché è questo? Sicuramente non ha senso avere due comandi che fanno esattamente la stessa cosa.

    
posta DevRobot 22.12.2016 - 16:17

6 risposte

33

la è un alias di ls -A definito nel file ~/.bashrc in Ubuntu.

Mostra solo lo stesso risultato se non hai file o directory nascosti.

ls -A mostra file e directory nascosti.

    
risposta data Pilot6 22.12.2016 - 16:20
14

la è definito come un alias nel file Ubuntus ~/.bashrc insieme a pochi altri. la è semplicemente un ls -A come puoi vedere nel seguente snippet da ~/.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'
    
risposta data Videonauth 22.12.2016 - 16:20
7

In caso di dubbio, type la .

Output Bash:

la is aliased to 'ls -la'

Output pesce:

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
    
risposta data user2394284 22.12.2016 - 20:47
5

ls è un comando, l e la sono probabilmente alias che fanno uso del comando ls . Se esegui il comando alias puoi trovare tutti gli alias sul tuo sistema.

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

Ciò restituirà tutti gli alias che corrispondono al modello l = ... o la = ....

    
risposta data Arijit Chatterjee 22.12.2016 - 16:24
3

Non producono lo stesso risultato in tutte le directory.

Crea un dotfile con touch .whatever , quindi emetti sia la che ls .

    
risposta data user4556274 22.12.2016 - 16:20
2

la è un alias per ls -A , come indicato da altre risposte. In quanto tale, non può essere utilizzato negli script di shell, mentre ls può.

Il tuo computer ha più comandi con alias. Un elenco completo può essere ottenuto eseguendo alias . Sulla mia macchina stampa questo:

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 che il colore verrà disattivato quando non si stampa direttamente su STDOUT.

    
risposta data Mark Gardner 22.12.2016 - 19:04

Leggi altre domande sui tag