Unterschied zwischen ls -l und ll?

59

Ich bin relativ neu in der Programmierung als Ganzes und einige Tutorials haben mir ls -lgesagt, dass ich Dateien in einem Verzeichnis betrachten soll, und andere haben gesagt ll. Ich weiß, das lsist eine kurze Liste, aber gibt es einen Unterschied zwischen den beiden anderen?

Jon
quelle
8
Vielleicht möchten Sie einen Blick darauf werfen which ll. Sie werden wahrscheinlich feststellen, dass dies lltatsächlich ein Alias ​​für ist ls -l.
HalosGhost
Was ist dann der Unterschied zwischen lsanderen Befehlen, die ich in die Shell geschrieben habe? Wenn ich tippe which lsbekomme ich alias ls='ls --color=auto' /bin/ls, aber wenn ich tippe (zum Beispiel) which cdbekomme ich /usr/bin/which: no cd in (........). EDIT: Ich habe es nochmal mit probiert which mkdirund bekam /bin/mkdir. Was ist der Unterschied zwischen diesen Befehlen, in denen einige von ihnen gespeichert sind (?) /usr/binUnd andere anscheinend nicht?
Jon
Dies ist eine Auswirkung der Standardeinstellung Ihrer Distribution $PATH. lswird sehr oft mit einem Alias ​​versehen, sodass Ihre Shell den Alias ​​(der Vorrang vor der Binärdatei hat) und die tatsächliche Position der Binärdatei (in Ihrem Fall /bin/ls) meldet . Wenn whichnicht finden konnte cd, dann scheint etwas schrecklich falsch.
HalosGhost,
2
cdist ein in die Shell eingebautes Schlüsselwort, kein Programm, das in einem Dateisystem gefunden wird. Nutze type cdund um type lszu sehen was ich meine. Einige Befehle werden einfach durch Shell builtins außer Kraft gesetzt: echovor /bin/echo, aber in bashund in der Tat die meisten der modernen Schalen, eine builtin echowird Funktion aufgerufen statt (die in der Regel hat Features erweitert). typesagt dir eigentlich, welches es ist.
Orion

Antworten:

88

Ist auf vielen Systemen llein Alias ​​von ls -l:

$ type ll
ll is aliased to `ls -l'

Sie sind gleich.

cuonglm
quelle
3
ll is aliased to ls -ltr - ich benutze red hat 6
rdp 27.05.15
3
in Ubuntu 14.04 ll ist alias 'ls -alF'
Viktor
3
Auch ls -alFin Ubuntu 12.04, 16.04 und wahrscheinlich vielen mehr.
Paul
3
Für mich unter macOS ist Sierra ll aufls -lh
Zorgatone 20.04.17
13

Wie bereits erwähnt, llwird dies oft als Alias ​​von definiert ls -l. In der Tat lsist oft ein Pseudonym selbst:

$ which ls
alias ls='ls --color=auto'
/usr/bin/ls

Der eigentliche Befehl ist lsder in /usr/bin. llDies ist nur als Annehmlichkeit gedacht, aber Sie können sich nicht darauf verlassen, dass es auf allen * nix-Systemen definiert ist. Daher ist es gut zu wissen, was es wirklich tut.

sosiouxme
quelle
Gute Antwort. Ich kann nicht anders, als hinzuzufügen, dass dies einer der Gründe ist, warum es lsin der Regel eine schlechte Idee ist, sich auf Automatisierung zu verlassen (insbesondere auf Ad-hoc-Einzeiler). Es gibt verschiedene Optionen, die die Ausgabe ändern, und viele Möglichkeiten, sie anzugeben. Wenn unterschiedliche Distributionen unterschiedliche Standardeinstellungen auswählen, kann dies zu Kopfschmerzen führen.
ctt
Ich habe keine populäre Verteilung als Alias lsfür irgendetwas anderes gesehen ls --color=auto. Entweder das oder es gibt keinen Alias.
Phoops
4

Ubuntu 14.04

laike9m@laike9m1:~$ type ll
ll is aliased to `ls -alF'
laike9m
quelle
1
Auch 12.04 und 16.04, aber das ist alles, was ich zur Zeit zum Testen zur Verfügung habe.
Paul
3

Funktioniert in den meisten Fällen llnicht in Shell-Skripten.

Sree
quelle
1
In der Regel handelt es sich bei Befehlen llum Aliase, die beim Ausführen von Skripten nicht definiert werden.
Vonbrand
3
Einige Personen haben den Alias ​​im .profile und der Alias ​​arbeitet in einer interaktiven Shell. Nach dem Debuggen / Testen eines neuen Skripts schlägt das Skript in crontab plötzlich fehl. Cron liest das .profile nicht.
Walter A
1
Dies ist keine Antwort auf die Frage, sondern sollte ein Kommentar sein. Nach meinem kleinen Verständnis sind Aliase in Shell-Skripten veraltet.
Cornflakes24
Ich sage "am meisten", aber es geht nicht um meins, und ich benutzels -l
travellingbones
1

llist ein Alias ​​für ls -l.

Die Option -lweist den Befehl an, ein langes Listenformat zu verwenden. Es werden mehrere Spalten zurückgegeben, die bei Verwendung des einfachen lsBefehls nicht angezeigt werden. Diese Spalten umfassen:

  • Berechtigungen

  • Anzahl der Hardlinks

  • Dateieigentümer

  • Dateigruppe

  • Dateigröße

  • Änderung

  • Zeit

  • Dateiname

Code_Jamer
quelle
0

Wenn Sie ll ausführen, werden die Dateien in der Shell angezeigt, und Sie müssen die Eingabetaste drücken, um die nächsten Dateien anzuzeigen (Option more ..). Wenn Sie ls -l ausführen, werden alle Dateien gleichzeitig angezeigt.

pmaipmui
quelle