ls Verzeichnisinhalte auflisten

Verwendung

Wenn Sie sich zum ersten Mal in ein Unix-System einloggen, wird auf Ihrem Terminal ein Shell-Prompt angezeigt. Der Prompt, den Sie sehen werden, wird ähnlich wie der untenstehende sein:

linuxconfig.org:~$

Diese Aufforderung gibt Ihnen folgende Informationen:

  • $ bedeutet, dass Sie sich als nicht-privilegierter Benutzer angemeldet haben
  • ~ bedeutet, dass Sie sich in Ihrem Heimverzeichnis befinden

Die vom Shell-Prompt angezeigten Informationen können variieren. Dies hängt von Ihrer Linux-Distribution und Ihren persönlichen Einstellungen ( Umgebung) ab.

Jetzt ist es an der Zeit, zu erkunden, was sich in Ihrem Heimatverzeichnis befindet und wo genau Ihr Heimatverzeichnis liegt. Für diese Erkundung benötigen wir einige Werkzeuge. Ein solches Werkzeug kann ls command sein, das die Möglichkeit hat, eine Liste von Dateien und Verzeichnissen anzuzeigen.

linuxconfig.org:~$ ls
linuxconfig.org:~$

Nun, es scheint, dass etwas schief gelaufen ist, weil keine Ausgabe auf dem Bildschirm produziert wurde. Dies ist eine völlig normale Ausgabe, wenn es in Ihrem aktuellen Verzeichnis keine Dateien oder Verzeichnisse gibt. Aktuelles Verzeichnis bedeutet ein Verzeichnis, in dem Sie sich befinden und das zu einem beliebigen Zeitpunkt im Moment das Heimatverzeichnis ist. Das Standardverhalten des ls-Befehls besteht darin, eine Liste der Dateien und Verzeichnisse des aktuellen Verzeichnisses anzuzeigen. Der Befehl pwd zeigt Ihren aktuellen Standort an:

linuxconfig.org:~$ pwd
/home/linuxconfig
linuxconfig.org:~$

Das Standardverhalten des ls-Befehls kann durch die Eingabe einiger Optionen und Argumente an den ls-Befehl  selbst außer Kraft gesetzt werden. Wenn wir beispielsweise alle Dateien und Verzeichnisse in / ( Wurzelverzeichnis ) auflisten wollen, würden wir / als Argument für ls eingeben.

linuxconfig.org:~$ ls /
bin   cdrom  etc   initrd      lib         media  opt   root  srv  tmp  var
boot  dev    home  initrd.img  lost+found  mnt    proc  sbin  sys  usr  vmlinuz
linuxconfig.org:~$

Im obigen Befehl haben wir ein Argument an ls Befehl geliefert, das ein Verzeichnis / ist. / ( Rootverzeichnis ) ein übergeordnetes Verzeichnis für alle anderen Verzeichnisse innerhalb eines Dateisystems ist. Die Ausgabe zeigt daher alle Verzeichnisse und Dateien, die sich unter / Verzeichnis befinden. Bitte beachten Sie, dass sich dort auch unser /home-Verzeichnis befindet.

Lassen Sie uns einige Dateien erstellen, mit denen wir mehr Daten zum Spielen haben. Der nächste Befehl erzeugt 2 Dateien: foo und .bar. Der Unterschied zwischen diesen beiden Dateien ist, dass die Datei .bar eine versteckte Datei ist und die Datei foo nicht. Jedes Verzeichnis und jede Datei, die einen Punkt vor dem Namen hat, wird versteckt. Um diese beiden Dateien zu erstellen, verwenden wir einen Touch-Befehl.

linuxconfig.org:~$ touch foo .bar
linuxconfig.org:~$

Jetzt können wir wieder unseren ls-Befehl verwenden, um zu bestätigen, dass Dateien erstellt wurden:

linuxconfig.org:~$ ls
foo
linuxconfig.org:~$

Nur weil die .bar-Datei versteckt ist, wird sie nicht angezeigt, wenn der Befehl ls ausgeführt wird. Ls-Befehl zeigt standardmäßig keine versteckten Dateien an, und deshalb müssen wir sein Verhalten mit der Option -a überschreiben.

linuxconfig.org:~$ ls -a
.  ..  .bar  .bash_profile  .bashrc  foo
linuxconfig.org:~$

Die Option -a bewirkt, dass ls Befehl alle Dateien einschließlich versteckter Dateien auflistet. Beachten Sie, dass wir ein paar andere versteckte Dateien in Ihrem Heimatverzeichnis haben. Wichtig ist an dieser Stelle, dass die zuvor erstellte Datei .bar in der Ausgabe von ls aufgelistet wird.

Die Verwendung der Option -l in Kombination mit dem Befehl ls gibt uns detailliertere Informationen über eine bestimmte Datei oder ein bestimmtes Verzeichnis. Betrachten Sie das folgende Beispiel:

linuxconfig.org:~$ ls -l foo
-rw-r--r-- 1 linuxconfig linuxconfig 0 2008-01-13 00:52 foo
linuxconfig.org:~$

Wenn der Befehl ls mit den Optionen -l ( langes Listenformat ) und dem Argument foo versorgt wird, zeigt der Befehl ls detaillierte Informationen über die Datei foo an. Diese Informationen umfassen Dateiberechtigung, Besitzer, Gruppe, Größe, Erstellungsdatum + Zeit und zuletzt den Dateinamen.

Eine weitere nützliche Option zur Änderung des Standardverhaltens des Befehls ls ist -h. Diese Option zeigt die Größe der Datei in einem für Menschen lesbaren Format an. Standardmäßig zeigt der Befehl ls -l die Dateigröße in Bytes an:

linuxconfig.org:~$ ls -l /etc/services
-rw-r--r-- 1 root root 18274 2007-02-02 13:09 /etc/services
linuxconfig.org:~$

Wir können zwei Optionen -lh kombinieren, um die vorherige Ausgabe in KB zu erhalten:

linuxconfig.org:~$ ls -lh /etc/services
-rw-r--r-- 1 root root 18K 2007-02-02 13:09 /etc/services
linuxconfig.org:~$

Wie bereits oben erwähnt wurde, zeigt ein ls-Befehl ohne Argumente eine Liste von Dateien und Verzeichnissen im aktuellen Verzeichnis an. Es kann der Fall eintreten, dass wir Dateien und Verzeichnisse in allen Unterverzeichnissen auflisten müssen. Der folgende ls-Befehl mit der Option -R listet rekursiv alle Dateien auf. Zuerst müssen wir zwei Verzeichnisse mit dem Befehl mkdir erstellen: dir1 und dir2, wobei dir1 ein übergeordnetes Verzeichnis von dir2 sein wird. Dann erstellen wir eine Datei namens foobar innerhalb eines dir2 und verwenden ls -R, um das aktuelle Verzeichnis rekursiv aufzulisten:

linuxconfig.org:~$ mkdir -p dir1/dir2
linuxconfig.org:~$ touch dir1/foobar
linuxconfig.org:~$ ls -R
.:
dir1  foo

./dir1:
dir2  foobar

./dir1/dir2:
linuxconfig.org:~$

Die Output-Analyse wird die folgenden Ergebnisse aufzeigen:

  • Das aktuelle Verzeichnis enthält das Verzeichnis dir1 und die Datei foo
  • Verzeichnis dir1 enthält Verzeichnis dir2
  • Das Verzeichnis dir2 enthält die Datei foobar

Kurzfassung

ls [OPTION]... [FILE]...

Häufig verwendete Optionen

-l    use a long listing format
-a, --all
      do not ignore entries starting with
-t    sort by modification time
-r, --reverse
      reverse order while sorting
-h, --human-readable
      with -l, print sizes in human readable format (e.g., 1K 239M 1G)