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

Sono entrato accidentalmente 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.

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

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

ls -A mostra i file e le directory nascosti.

la è definita come un alias nel file Ubuntus ~/.bashrc insieme ad alcuni altri. la è semplicemente un ls -A come potete vedere nel seguente frammento di ~/.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' 

In caso di dubbio, type la .


Uscita Bash:

 la is aliased to `ls -la' 

Produzione di 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 

ls è un comando, l e la sono probabilmente alias che fanno uso del comando ls . Se si esegue il comando alias è ansible trovare tutti gli alias sul proprio sistema.

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

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

Non producono lo stesso risultato in tutte le directory.

Crea un file di puntini con il touch .whatever , poi touch .whatever sia la che ls .

la è un alias per ls -A , come affermato 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 un 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 indica che il colore verrà distriggersto quando non si stampa direttamente su STDOUT.