Was ist der Unterschied zwischen ls und la? Warum geben sie die gleiche Ausgabe?

19

Ich habe versehentlich eingegeben la, anstatt lsden Inhalt eines Verzeichnisses anzuzeigen, und es erzeugt genau die gleiche Ausgabe wie ls...

Warum ist das? Sicherlich macht es keinen Sinn, zwei Befehle zu haben, die genau dasselbe tun.

Sag mir warum
quelle
3
Nur type la. Und du wirst es bekommen.
Pandya

Antworten:

34

laist ein Alias, ls -Ader in einer ~/.bashrcDatei in Ubuntu definiert wird.

Die gleiche Ausgabe wird nur angezeigt, wenn Sie keine versteckten Dateien oder Verzeichnisse haben.

ls -A zeigt versteckte Dateien und Verzeichnisse.

Pilot6
quelle
3
Eher wie "es zeigt nicht unbedingt die gleiche Ausgabe", da Sie keine versteckten Dateien (die mit einem Punkt beginnen) haben. und .., die Ausgabe wird gleich sein.
Muzer
1
Das ist wahr. Aktualisiert.
Pilot6
2
Beachten Sie, dass ls -Aanders ist ls -a- letzterer wird die Show .und ..dieses Verzeichnis Bedeutung und enthält Verzeichnis sind.
Tim
14

lawird ~/.bashrczusammen mit einigen anderen als Alias ​​in Ubuntus- Datei definiert . laist einfach ein ls -Awie du im folgenden schnipsel aus dem sehen kannst~/.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
quelle
Das wäre Ubuntu's(ohne die Code-Formatierung).
Peter Mortensen
8

Im Zweifelsfall type la.


Bash-Ausgabe:

la is aliased to `ls -la'

Fischproduktion:

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
quelle
6

lsist ein Befehl, lund laes handelt sich höchstwahrscheinlich um Aliase, die diesen Befehl verwenden ls. Wenn Sie den Befehl ausführen alias, können Sie alle Aliase auf Ihrem System finden.

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

Dies gibt alle Aliase zurück, die mit dem Muster l = ... oder la = .... übereinstimmen.

Arijit Chatterjee
quelle
1
Oder einfachalias l la
Kevin
4

Sie erzeugen nicht in allen Verzeichnissen die gleiche Ausgabe.

Erstellen Sie eine Punktdatei mit touch .whatever, und setzen Sie dann beide laund ab ls.

user4556274
quelle
2

laist ein Alias ​​für ls -A, wie aus anderen Antworten hervorgeht. Daher kann es nicht in Shell-Skripten verwendet werden, solange dies möglich lsist.

Ihr Computer verfügt über mehrere Alias-Befehle. Eine vollständige Liste erhalten Sie durch Ausführen von alias. Auf meinem Computer wird Folgendes gedruckt:

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 bedeutet, dass die Farbe deaktiviert wird, wenn nicht direkt auf STDOUT gedruckt wird.

Mark Gardner
quelle