Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
103.3 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 103: GNU- und Unix-Befehle
  2. 103.3 Grundlegende Dateiverwaltung
  3. 103.3 Lektion 1

103.3 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

103 GNU- und Unix-Befehle

Lernziel:

103.3 Grundlegende Dateiverwaltung

Lektion:

1 von 2

Einführung

Alles in Linux ist eine Datei, daher ist es wichtig zu wissen, wie man diese manipulieren kann. In dieser Lektion behandeln wir grundlegende Dateienoperationen.

Im Allgemeinen sehen sich Linuxbenutzer mit der Aufgabe konfrontiert durch das Dateisystem zu navigieren, Dateien von einem Ort zum Anderen zu kopieren und Dateien zu löschen. Wir werden ebenfalls die mit der Dateiverwaltung verbundenen Befehle behandeln.

Eine Datei ist eine Entität, die Daten oder Programme speichert. Sie besteht aus Inhalt und Metadaten (Dateigröße, Eigentümer, Erstellungsdatum, Berechtigungen). Dateien sind in Verzeichnissen organisiert. Ein Verzeichnis ist eine Datei, die andere Dateien beherbergt.

Die verschiedenen Dateitypen umfassen:

Reguläre Dateien

die Daten und Programme speichern.

Verzeichnisse

die andere Dateien enthalten.

Spezielle Dateien

die für die Ein- und Ausgabe verwendet werden.

Natürlich gibt es auch andere Arten von Dateien, aber das übersteigt den Rahmen dieser Lektion. Später werden wir erörtern, wie diese verschiedenen Dateitypen identifiziert werden können.

Dateimanipulation

Verwendung von ls zum Auflisten von Dateien

Der Befehl ls ist eines der wichtigsten Kommandozeilenwerkzeuge, welches es zu beherrschen gilt, um sich in Dateisystemen zurechtzufinden.

In seiner Grundform wird ls nur Datei- und Verzeichnisnamen auflisten:

$ ls
Desktop Downloads   emp_salary  file1   Music   Public  Videos
Documents   emp_name    examples.desktop    file2   Pictures    Templates

Bei Verwendung mit -l , bezeichnet als long listing Format, zeigt es Datei- oder Verzeichnisberechtigungen, Eigentümer, Speichergröße, Änderungsdatum, Zeit und Name an:

$ ls -l
total 60
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8980    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Videos

Das erste Zeichen in der Ausgabe gibt den Dateityp an:

-

für eine reguläre Datei.

d

für ein Verzeichnis.

c

für eine spezielle Datei.

Um die Dateigrößen in einem für Menschen lesbaren Format anzuzeigen, fügen Sie die Option -h hinzu:

$ ls -lh
total 60K
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos

Um alle Dateien einschließlich versteckter Dateien (welche mit . beginnen) aufzulisten, benutzen Sie die Option -a:

$ ls -a
.               .dbus   file1   .profile
..              Desktop file2   Public
.bash_history   .dmrc  .gconf  .sudo_as_admin_successful

Konfigurationsdateien wie .bash_history, die standardmäßig versteckt sind, sind jetzt sichtbar.

Im Allgemeinen lautet die Befehlssyntax von ls wie folgt:

ls OPTIONEN DATEI

Wobei OPTIONEN irgendeine der zuvor gezeigten Optionen darstellt (um alle möglichen Optionen zu sehen, führen Sie man ls aus), und DATEI ist der Name der Datei oder des Verzeichnisses, welches aufgelistet werden soll.

Note

Wenn DATEI nicht angegeben wird, wird das aktuelle Verzeichnis impliziert.

Erstellen, Kopieren, Verschieben und Löschen von Dateien

Dateien mit touch erstellen

Der Befehl touch ist der einfachste Weg, um neue, leere Dateien zu erstellen. Sie können ihn auch benutzen, um den Zeitstempel (d.h. die Änderungszeit) bestehender Dateien und Verzeichnisse zu ändern. Die Syntax für die Verwendung von touch lautet:

touch OPTIONEN DATEI_NAME(N)

Ohne irgendwelche Optionen würde touch neue Dateien für alle Dateinamen erzeugen, die als Argumente geliefert werden, vorausgesetzt, dass Dateien mit solchen Namen nicht bereits existieren. touch kann eine beliebige Anzahl von Dateien gleichzeitig erzeugen:

$ touch file1 file2 file3

Dies würde drei neue sowie leere Dateien mit den Namen file1, file2 und file3 erzeugen.

Mehrere touch Optionen wurden speziell dafür entwickelt, dem Benutzer die Möglichkeit zu geben, die Zeitstempel für Dateien zu ändern. Zum Beispiel ändert die Option -a nur die Zugriffszeit, während die Option -m nur die Änderungszeit verändert. Die Verwendung beider Optionen zusammen ändert sowohl die Zugriffs- als auch die Änderungszeit auf die aktuelle Systemzeit:

$ touch -am file3
Kopieren von Dateien mit cp

Als Linuxbenutzer werden Sie oft Dateien von einem Ort an einen Anderen kopieren. Ob es sich um das Verschieben einer Musikdatei von einem Verzeichnis in ein Anderes oder um eine Systemdatei handelt, verwenden Sie cp (copy) für alle Kopieraufgaben:

$ cp file1 dir2

Dieser Befehl kann wörtlich als Kopie von file1 in das Verzeichnis dir2 interpretiert werden. Das Ergebnis ist das Vorhandensein von file1 innerhalb von dir2. Damit dieser Befehl erfolgreich ausgeführt werden kann, muss file1 im aktuellen Verzeichnis des Benutzers vorhanden sein. Andernfalls meldet das System einen Fehler mit der Meldung No such file or directory.

$ cp dir1/file1 dir2

Beachten Sie in diesem Fall, dass der Pfad zu file1 eindeutiger ist. Der Quellpfad kann entweder als relativer oder als absoluter Pfad ausgedrückt werden. Relative Pfade werden in Bezug auf ein bestimmtes Verzeichnis angegeben, während absolute Pfade nicht mit einem Verweis angegeben werden. Im Folgenden wird dieser Begriff näher erläutert.

Beachten Sie vorerst nur, dass dieser Befehl file1 in das Verzeichnis dir2 kopiert. Der Pfad zu file1 wird konkret angegeben, da sich der Benutzer zur Zeit nicht in dir1 befindet.

$ cp /home/frank/Documents/file2 /home/frank/Documents/Backup

In diesem dritten Fall wird file2, welche sich in /home/frank/Documents befindet, in das Verzeichnis /home/frank/Documents/Backup kopiert. Der hier angegebene Quellpfad ist absolut. In den beiden obigen Beispielen sind die Quellpfade relativ. Wenn ein Pfad mit dem Zeichen / beginnt, handelt es sich stets um einen absoluten Pfad, ansonsten um einen relativen Pfad.

Die allgemeine Syntax für cp lautet:

cp OPTIONEN QUELLE ZIEL

QUELLE ist die zu kopierende Datei und ZIEL das Verzeichnis, in das die Datei kopiert werden soll. QUELLE und ZIEL können entweder als absolute oder relative Pfade angegeben werden.

Verschieben von Dateien mit mv

Genau wie cp zum Kopieren bietet Linux einen Befehl zum Verschieben und Umbenennen von Dateien. Er wird mv (move) genannt.

Die Verschiebeoperation ist analog zu der Ausschneide- und Einfügeoperation, die Sie im Allgemeinen über eine grafische Benutzeroberfläche (GUI) durchführen.

Wenn Sie eine Datei an einen neuen Ort verschieben möchten, verwenden Sie mv auf folgende Weise:

mv DATEINAME ZIEL_VERZEICHNIS

Hier ein Beispiel:

$ mv myfile.txt /home/frank/Documents

Das Ergebnis ist, dass myfile.txt in das Ziel /home/frank/Dokumente verschoben wird.

Um eine Datei umzubenennen, wird mv wie folgt verwendet:

$ mv old_file_name new_file_name

Dadurch wird der Name der Datei von old_file_name in new_file_name geändert.

Standardmäßig wird mv nicht nach einer Bestätigung fragen (technisch gesagt “would not prompt”), wenn Sie eine bestehende Datei überschreiben (umbenennen) wollen. Sie sollten das System jedoch anweisen, Sie mittels der Option -i danach zu fragen:

$ mv -i old_file_name new_file_name
mv: overwrite 'new_file_name'?

Dieser Befehl würde den Benutzer um Erlaubnis fragen, bevor new_file_name mit old_file_name überschrieben wird.

Umgekehrt wird -f verwendet:

$ mv -f old_file_name new_file_name

würde die Datei zwangsweise überschreiben, ohne irgendeine Rückfrage.

Löschen von Dateien mit rm

rm wird zum Löschen von Dateien verwendet. Stellen Sie es sich als eine abgekürzte Form des Wortes “remove” vor. Beachten Sie, dass die Aktion des Entfernens einer Datei normalerweise irreversibel ist, daher sollte dieser Befehl mit Vorsicht verwendet werden.

$ rm file1

Dieser Befehl löscht file1.

$ rm -i file1
rm: remove regular file 'file1'?

Dieser Befehl würde den Benutzer vor dem Löschen von file1 um eine Bestätigung bitten. Erinnern Sie sich, wir haben oben bei der Verwendung von mv bereits die Option -i kennengelernt.

$ rm -f file1

Dieser Befehl löscht file1, ohne eine Bestätigung einzuholen.

Es können auch mehrere Dateien gleichzeitig gelöscht werden:

$ rm file1 file2 file3

In diesem Beispiel werden file1, file2 und file3 gleichzeitig gelöscht.

Die Syntax für rm lautet:

rm OPTIONEN DATEI

Erstellen und Löschen von Verzeichnissen

Verzeichnisse mit mkdir erstellen

Das Erstellen von Verzeichnissen ist entscheidend für die Organisation Ihrer Dateien und Ordner. Dateien können auf logische Weise gruppiert werden, indem man sie innerhalb eines Verzeichnisses aufbewahrt. Um ein Verzeichnis zu erstellen, benutzen Sie mkdir (make directory):

mkdir OPTIONEN VERZEICHNIS_NAME

wobei VERZEICHNIS_NAME der Name des zu erstellenden Verzeichnisses darstellt. Es können beliebig viele Verzeichnisse gleichzeitig erstellt werden:

$ mkdir dir1

würde das Verzeichnis dir1 im aktuellen Verzeichnis des Benutzers erzeugen.

$ mkdir dir1 dir2 dir3

Der vorhergehende Befehl würde die drei Verzeichnisse dir1, dir2 und dir3 gleichzeitig erzeugen.

Um ein Verzeichnis zusammen mit seinen Unterverzeichnissen zu erstellen, verwenden Sie die Option -p (“parents”):

$ mkdir -p parents/children

Dieser Befehl würde die Verzeichnisstruktur parents/children erzeugen, d.h. er würde die Verzeichnisse parents und children erzeugen. children würde sich innerhalb von parents befinden.

Entfernen von Verzeichnissen mit rmdir

rmdir (remove directory) löscht ein Verzeichnis wenn es leer ist. Die Syntax lautet wie folgt:

rmdir OPTIONEN VERZEICHNIS

wobei VERZEICHNIS ein einzelnes Argument oder eine Liste von Argumenten sein kann.

$ rmdir dir1

Dieser Befehl löscht dir1.

$ rmdir dir1 dir2

Dieser Befehl würde gleichzeitig dir1 und dir2 löschen.

Sie können ein Verzeichnis auch mit seinem Unterverzeichnis entfernen:

$ rmdir -p parents/children

Dies würde die Verzeichnisstruktur parents/children entfernen. Beachten Sie, dass wenn eines der Verzeichnisse nicht leer ist, der Befehl fehlschlägt.

Rekursive Manipulation von Dateien und Verzeichnissen

Um ein Verzeichnis und seinen Inhalt zu manipulieren, müssen Sie eine Rekursion anwenden. Rekursion bedeutet, eine Aktion durchzuführen und diese Aktion im gesamten Verzeichnisbaum zu wiederholen. Unter Linux werden die Optionen -r, -R oder --recursive für ein Rekursion verwendet.

Das folgende Szenario wird uns helfen, die Rekursion besser zu verstehen:

Sie listen den Inhalt eines Verzeichnisses students auf, das zwei Unterverzeichnisse level 1 und level 2 sowie die Datei namens frank enthält. Durch Anwendung der Rekursion würde der Befehl ls den Inhalt von students auflisten, d.h. level 1, level 2 und frank, aber er würde dort nicht enden. Er würde gleichermaßen die Unterverzeichnisse level 1 und level 2 betreten und deren Inhalt auflisten und so weiter und so weiter.

Rekursive Auflistung mit ls -R

ls -R wird verwendet, um den Inhalt eines Verzeichnisses zusammen mit seinen Unterverzeichnissen und Dateien aufzulisten.

$ ls -R mydirectory
mydirectory/:
file1   newdirectory

mydirectory/newdirectory:

In der obigen Auflistung ist mydirectory einschließlich seines gesamten Inhalts aufgeführt. Sie können beobachten, dass mydirectory das Unterverzeichnis newdirectory und die Datei file1 enthält. newdirectory ist leer, weshalb kein Inhalt angezeigt wird.

Im Allgemeinen verwendet man den Befehl wie folgt, um den Inhalt eines Verzeichnisses einschließlich seiner Unterverzeichnisse aufzulisten:

ls -R VERZEICHNIS_NAME

Das Hinzufügen eines Schrägstrichs am Ende von VERZEICHNIS_NAME hat keine Wirkung:

$ ls -R animal

ist vergleichbar mit

$ ls -R animal/

Rekursives Kopieren mit cp -r

cp -r (oder -R oder --recursive) erlaubt es uns, ein Verzeichnis zusammen mit allen Unterverzeichnissen und Dateien zu kopieren.

$ tree mydir
mydir
|_file1
|_newdir
    |_file2
    |_insidenew
        |_lastdir


3 directories, 2 files
$ mkdir newcopy
$ cp mydir newcopy
cp: omitting directory 'mydir'
$ cp -r mydir newcopy
* tree newcopy
newcopy
|_mydir
    |_file1
    |_newdir
        |_file2
        |_insidenew
            |_lastdir

4 directories, 2 files

In der obigen Auflistung beobachten wir, dass beim Versuch mydir in newcopy zu kopieren, wobei cp ohne -r verwendet wird, die Meldung cp: omitting directory `mydir' angezeigt wird. Durch Hinzufügen der Option -r wird jedoch der gesamte Inhalt von mydir einschließlich seiner selbst in newcopy kopiert.

Zum Kopieren von Verzeichnissen und Unterverzeichnissen verwenden Sie:

cp -r QUELLE ZIEL

Rekursives Löschen mit rm -r

rm -r entfernt ein Verzeichnis und seinen gesamten Inhalt (Unterverzeichnisse und Dateien).

Warning

Seien Sie sehr vorsichtig entweder mit -r oder der Optionskombination von -rf, wenn der Befehl rm verwendet wird. Ein rekursiver Entfernungsbefehl auf ein wichtiges Systemverzeichnis könnte das System unbrauchbar machen. Verwenden Sie den rekursiven Entfernungsbefehl nur, wenn Sie absolut sicher sind, dass der Inhalt eines Verzeichnisses sicher von einem Computer entfernt werden kann.

Beim Versuch, ein Verzeichnis zu löschen, ohne -r zu benutzen, wird das System einen Fehler melden:

$ rm newcopy/
rm: cannot remove 'newcopy/': Is a directory
$ rm -r newcopy/

Damit die Löschung wirksam wird, müssen Sie wie beim zweiten Befehl -r hinzufügen.

Note

Sie fragen sich vielleicht, warum wir in diesem Fall nicht rmdir verwenden. Es gibt einen subtilen Unterschied zwischen den beiden Befehlen. rmdir würde nur dann ein Verzeichnis erfolgreich löschen, wenn es leer ist, während rm -r unabhängig davon verwendet werden kann, ob dieses Verzeichnis leer ist oder nicht.

Fügen Sie die Option -i hinzu, um eine Bestätigung einzuholen, bevor die Datei gelöscht wird:

$ rm -ri mydir/
rm: remove directory 'mydir/'?

Das System fordert Ihre Erlaubnis, bevor es versucht mydir zu löschen.

Datei Globbing und Platzhalterzeichen

Datei globbing ist eine von der Unix/Linux-Shell zur Verfügung gestellte Funktion zur Darstellung mehrerer Dateinamen durch die Verwendung von Sonderzeichen namens wildcards. Wildcards sind im Wesentlichen Symbole, die als Ersatz für ein oder mehrere Zeichen verwendet werden können. Sie erlauben es zum Beispiel, alle Dateien anzuzeigen, die mit dem Buchstaben A beginnen oder alle Dateien, die mit den Buchstaben .conf enden.

Wildcards sind sehr nützlich, da sie mit Befehlen wie cp, ls oder rm kombiniert werden können.

Im Folgenden finden Sie einige Beispiele für das Datei Globbing:

rm *

Alle Dateien im aktuellen Arbeitsverzeichnis löschen.

ls l?st

Listet alle Dateien auf, deren Name mit l beginnt, gefolgt von einem beliebigen Einzelzeichen und mit st enden.

rmdir [a-z]*

Alle Verzeichnisse entfernen, deren Name mit einem Buchstaben beginnt.

Arten von Platzhaltern

Es gibt drei Zeichen, die unter Linux als Platzhalter verwendet werden können:

* (Sternchen)

steht für kein, ein oder mehrere Vorkommen eines beliebigen Zeichens.

? (Fragezeichen)

steht für ein einzelnes Vorkommen eines beliebigen Zeichens.

[ ] (Zeichen in eckigen Klammern)

steht für ein beliebiges Vorkommen des/der in eckigen Klammern eingeschlossenen Zeichen(s). Es ist möglich, verschiedene Arten von Zeichen zu verwenden, seien es Zahlen, Buchstaben oder andere Sonderzeichen. Zum Beispiel entspricht der Ausdruck [0-9] allen Ziffern.

Der Asterisk

Ein Sternchen auch Asterisk genannt (*) entspricht keinem, einem oder mehreren Vorkommnissen eines beliebigen Zeichens.

Zum Beispiel:

$ find /home -name *.png

Dies würde alle Dateien finden, die auf .png enden, wie z.B. photo.png, cat.png, frank.png. Der Befehl find wird in einer der folgenden Lektionen näher erläutert.

In ähnlicher Weise:

$ ls lpic-*.txt

würden alle Textdateien auflisten, die mit den Zeichen lpic- beginnen, gefolgt von einer beliebigen Anzahl von Zeichen und mit .txt enden, wie z.B. lpic-1.txt und lpic-2.txt.

Der Platzhalter Sternchen kann verwendet werden, um den gesamten Inhalt eines Verzeichnisses zu manipulieren (kopieren, löschen oder verschieben):

$ cp -r animal/* forest

In diesem Beispiel wird der gesamte Inhalt von animal in forest kopiert.

Im Allgemeinen, um den gesamten Inhalt eines verwendeten Verzeichnisses zu kopieren, benutzt man:

cp -r QUELL_PFAD/* ZIEL_PFAD

QUELL_PFAD kann vernachlässigt werden, wenn man sich bereits im gewünschten Verzeichnis befinden.

Das Sternchen könnte, wie jeder andere Platzhalter auch, im selben Befehl und an jeder beliebigen Position wiederholt verwendet werden:

$ rm *ate* 

Dateinamen mit keinem vorangestellten Zeichen oder einem bzw. mehreren Vorkommen eines beliebigen Zeichens an erster Stelle, gefolgt von den Buchstaben ate und endend mit keinem, einem oder mehreren Vorkommen eines beliebigen Zeichens werden entfernt.

Das Fragezeichen

Das Fragezeichen (?) entspricht einem einzigen Vorkommen eines Zeichens.

Betrachten Sie folgende Auflistung:

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt

Um nur die Dateien anzuzeigen, welche mit l beginnen, gefolgt von einem beliebigen Einzelzeichen und den Zeichen st.txt, verwenden wir den Fragezeichen Platzhalter (?):

$ ls l?st.txt
last.txt    lest.txt    list.txt

Nur die Dateien last.txt, lest.txt und list.txt werden angezeigt, entsprechend der angegebenen Kriterien.

In ähnlicher Weise:

$ ls ??st.txt
last.txt    lest.txt    list.txt    past.txt

gibt alle Dateien aus, denen zwei beliebige Zeichen vorangestellt sind, gefolgt von dem Text st.txt.

Zeichen in eckigen Klammern

Die Klammern als Platzhalter passen zu jedem Vorkommen des/der in den eckigen Klammern eingeschlossenen Zeichen(s):

$ ls l[aef]st.txt
last.txt    lest.txt

Dieser Befehl würde alle Dateien auflisten, die mit l beginnen, gefolgt von einem beliebigen_ Zeichen aus der Menge aef und mit st.txt enden.

Die eckigen Klammern könnten auch Bereiche aufnehmen:

$ ls l[a-z]st.txt
last.txt    lest.txt    list.txt

Dies gibt alle Dateien aus, deren Name mit l beginnt, gefolgt von einem beliebigen Kleinbuchstaben im Bereich a bis z und mit st.txt endet.

In den eckigen Klammern könnten auch mehrere Bereiche angegeben werden:

$ ls
student-1A.txt  student-2A.txt  student-3.txt
$ ls student-[0-9][A-Z].txt
student-1A.text student-2A.txt

Die Auflistung zeigt ein Schulverzeichnis mit einer Liste der eingeschriebenen Schüler. Es sollen nur diejenigen Studenten aufgelistet werden, deren Anmeldenummern die folgenden Kriterien erfüllen:

  • beginnen mit student-

  • gefolgt von einer Zahl und einem Großbuchstaben

  • und enden mit .txt

Kombinieren von Platzhaltern

Platzhalter können kombiniert werden:

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt
$ ls [plf]?st* 
last.txt    lest.txt    list.txt    past.txt

Die erste Platzhalterkomponente ([plf]) entspricht einem der Zeichen p, l oder f. Der zweite Platzhalter (?) passt auf jedes einzelne Zeichen. Der dritte Platzhalter (*) passt auf kein, ein oder mehrere Vorkommen eines beliebigen Zeichens.

$ ls
file1.txt file.txt file23.txt fom23.txt
$ ls f*[0-9].txt
file1.txt file23.txt fom23.txt

Der vorherige Befehl zeigt alle Dateien an, die mit dem Buchstaben f beginnen, gefolgt von einer beliebigen Menge von Buchstaben, mindestens einem Vorkommen einer Ziffer und endet mit .txt. Beachten Sie, dass file.txt nicht angezeigt wird, da sie dieses Kriterium nicht erfüllt.

Geführte Übungen

  1. Beachten Sie die folgende Auflistung:

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • Was stellt das Zeichen d in der Ausgabe dar?

    • Warum werden die Größen in menschenlesbarer Form angegeben?

    • Was wäre der Unterschied in der Ausgabe, wenn ls ohne Argument verwendet würde?

  2. Beachten Sie den nachstehenden Befehl:

    $ cp /home/frank/emp_name /home/frank/backup
    • Was würde mit der Datei emp_name geschehen, wenn dieser Befehl erfolgreich ausgeführt wird?

    • Wenn emp_name ein Verzeichnis darstellen würde, welche Option sollte zu cp hinzugefügt werden, um den Befehl auszuführen?

    • Wenn cp nun in mv geändert wird, welches Ergebnis ist zu erwarten?

  3. Betrachten Sie die Auflistung:

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Welcher Platzhalter würde helfen, den gesamten Inhalt dieses Verzeichnisses zu löschen?

  4. Basierend auf der vorherigen Auflistung, welche Dateien würden durch den folgenden Befehl angezeigt werden?

    $ ls file*.txt
  5. Vervollständigen Sie den Befehl, indem Sie die entsprechenden Ziffern und Zeichen in den eckigen Klammern hinzufügen, die den gesamten obigen Inhalt auflisten würden:

    $ ls file[].txt

Offene Übungen

  1. Erstellen Sie in Ihrem Homeverzeichnis die Dateien dog und cat.

  2. Erstellen Sie ebenfalls in Ihrem Homeverzeichnis das Verzeichnis namens animal. Verschieben Sie dog und cat in das Verzeichnis animal.

  3. Gehen Sie in den Ordner Documents Ihres Homeverzeichnis und erstellen Sie darin das Verzeichnis backup.

  4. Kopieren Sie animal und seinen Inhalt nach backup.

  5. Benennen Sie animal in backup in animal.bkup um.

  6. Das Verzeichnis /home/lpi/databases enthält viele Dateien, darunter db-1.tar.gz, db-2.tar.gz und db-3.tar.gz. Welchen einzelnen Befehl können Sie verwenden, um nur die genannten Dateien aufzulisten?

  7. Betrachten Sie folgende Auflistung:

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    Welcher Befehl würde bei der Verwendung eines einzigen Globbingzeichens nur die PDF-Dateien entfernen?

Zusammenfassung

In dieser Lektion untersuchten wir, wie man sich mit dem Befehl ls ansieht, was sich innerhalb eines Verzeichnisses befindet, wie man Dateien und Ordner kopiert (cp) und wie man sie auch verschiebt (mv). Wir untersuchten auch, wie neue Verzeichnisse mit dem Befehl mkdir erstellt werden können. Die Befehle zum Entfernen von Dateien (rm) und Ordnern (rmdir) wurden ebenfalls diskutiert.

Diese Lektion lehrte Sie auch über Datei Globbing und Platzhalterzeichen. Datei Globbing wird verwendet, um mehrere Dateinamen durch die Verwendung von Sonderzeichen, sogenannten Platzhaltern, darzustellen. Die grundlegenden Platzhalter und ihre Bedeutungen:

? (Fragezeichen)

steht für ein einzelnes Vorkommen eines Zeichens.

[ ] (Zeichen in eckigen Klammern)

steht für jedes Vorkommen des (der) Zeichen(s), das (die) in den eckigen Klammern eingeschlossen ist (sind).

* (Sternchen)

steht für kein, ein oder mehrere Vorkommen eines beliebigen Zeichens.

Alle Platzhalter können hierzu auch in derselben Anweisung kombinieren werden.

Lösungen zu den geführten Übungen

  1. Beachten Sie die folgende Auflistung:

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • Was stellt das Zeichen d in der Ausgabe dar?

      d ist das Zeichen, das ein Verzeichnis identifiziert.

    • Warum werden die Größen in menschenlesbarer Form angegeben?

      Aufgrund der Option -h.

    • Was wäre der Unterschied in der Ausgabe, wenn ls ohne Argument verwendet würde?

      Es würden nur Verzeichnis- und Dateinamen ausgegeben werden.

  2. Beachten Sie den nachstehenden Befehl:

    $ cp /home/frank/emp_name /home/frank/backup
    • Was würde mit der Datei emp_name geschehen, wenn dieser Befehl erfolgreich ausgeführt wird?

      emp_name würde in backup kopiert werden.

    • Wenn emp_name ein Verzeichnis darstellen würde, welche Option sollte zu cp hinzugefügt werden, um den Befehl auszuführen?

      -r

    • Wenn cp nun in mv geändert wird, welches Ergebnis ist zu erwarten?

      emp_name würde in backup verschoben werden. Die Datei wäre fortan nicht mehr im Homeverzeichnis von frank vorhanden.

  3. Betrachten Sie die Auflistung:

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Welcher Platzhalter würde helfen, den gesamten Inhalt dieses Verzeichnisses zu löschen?

    Das Sternchen *.

  4. Basierend auf der vorherigen Auflistung, welche Dateien würden durch den folgenden Befehl angezeigt werden?

    $ ls file*.txt

    Alle, denn das Sternchen steht für eine beliebige Anzahl von Zeichen.

  5. Vervollständigen Sie den Befehl, indem Sie die entsprechenden Ziffern und Zeichen in den eckigen Klammern hinzufügen, die den gesamten obigen Inhalt auflisten würden:

    $ ls file[].txt

    file[0-9].txt

Lösungen zu den offenen Übungen

  1. Erstellen Sie in Ihrem Homeverzeichnis die Dateien dog und cat.

    $ touch dog cat
  2. Erstellen Sie ebenfalls in Ihrem Homeverzeichnis das Verzeichnis namens animal. Verschieben Sie dog und cat in das Verzeichnis animal.

    $ mkdir animal
    $ mv dog cat -t animal/
  3. Gehen Sie in den Ordner Documents Ihres Homeverzeichnis und erstellen Sie darin das Verzeichnis backup.

    $ cd ~/Documents
    $ mkdir backup
  4. Kopieren Sie animal und seinen Inhalt nach backup.

    $ cp -r animal ~/Documents/backup
  5. Benennen Sie animal in backup in animal.bkup um.

    $ mv animal/ animal.bkup
  6. Das Verzeichnis /home/lpi/databases enthält viele Dateien, darunter db-1.tar.gz, db-2.tar.gz und db-3.tar.gz. Welchen einzelnen Befehl können Sie verwenden, um nur die genannten Dateien aufzulisten?

    $ ls db-[1-3].tar.gz
  7. Betrachten Sie folgende Auflistung:

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    Welcher Befehl würde bei der Verwendung eines einzigen Globbingzeichens nur die PDF-Dateien entfernen?

    $ rm *.pdf

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

103.3 Grundlegende Dateiverwaltung (103.3 Lektion 2)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.