Dateien und Verzeichnisse mit mkdir
, cp
, mv
und rm
organisieren
In diesem Schritt lernen Sie, wie Sie Ihre Dateien und Verzeichnisse effektiv mit den Befehlen mkdir
(make directory), cp
(copy), mv
(move/rename) und rm
(remove) organisieren. Diese Befehle sind entscheidend für die Aufrechterhaltung eines sauberen und strukturierten Dateisystems.
Stellen Sie zunächst sicher, dass Sie sich in Ihrem Verzeichnis ~/project
befinden.
cd ~/project
Überprüfen Sie Ihren aktuellen Standort:
pwd
Die Ausgabe sollte /home/labex/project
sein.
mkdir
: Verzeichnisse erstellen
Sie haben mkdir
bereits verwendet, um ein einzelnes Verzeichnis zu erstellen. Lassen Sie uns nun erweiterte mkdir
-Optionen erkunden.
Sie können mehrere Verzeichnisse gleichzeitig erstellen, indem Sie sie als Argumente auflisten:
mkdir reports presentations
Überprüfen Sie ihre Erstellung:
ls
Sie sollten documents
, presentations
und reports
aufgelistet sehen.
Die Option -p
(parents) des Befehls mkdir
ist sehr nützlich, um fehlende übergeordnete Verzeichnisse für das angeforderte Ziel zu erstellen. Dies verhindert Fehler, wenn Sie versuchen, ein Unterverzeichnis innerhalb eines nicht vorhandenen übergeordneten Verzeichnisses zu erstellen.
Erstellen wir eine verschachtelte Verzeichnisstruktur: projects/alpha/docs
.
mkdir -p projects/alpha/docs
Verwenden Sie nun ls -R
, um die neu erstellte verschachtelte Struktur zu sehen:
ls -R projects
Sie sollten Folgendes sehen:
projects:
alpha
projects/alpha:
docs
projects/alpha/docs:
cp
: Dateien und Verzeichnisse kopieren
Der Befehl cp
kopiert Dateien und Verzeichnisse. Beim Kopieren einer Datei wird eine Duplikat entweder im aktuellen Verzeichnis oder in einem anderen angegebenen Verzeichnis erstellt.
Kopieren wir report.txt
von documents
in das Verzeichnis reports
.
cp documents/report.txt reports/
Überprüfen Sie die Kopie, indem Sie den Inhalt des Verzeichnisses reports
auflisten:
ls reports
Sie sollten report.txt
im Verzeichnis reports
sehen.
Wenn eine Datei mit demselben Namen im Zielverzeichnis existiert, überschreibt cp
sie standardmäßig.
Um ein Verzeichnis und seinen Inhalt zu kopieren, müssen Sie die Option -r
(rekursiv) verwenden. Standardmäßig ignoriert cp
Verzeichnisse, wenn -r
nicht angegeben ist.
Kopieren wir das gesamte Verzeichnis documents
nach projects/alpha/
.
cp -r documents projects/alpha/
Überprüfen Sie die rekursive Kopie:
ls -R projects/alpha/documents
Sie sollten den Inhalt des Verzeichnisses documents
(einschließlich notes.txt
, drafts
und drafts/draft_v1.txt
) jetzt im Inneren von projects/alpha/documents
dupliziert sehen.
projects/alpha/documents:
drafts notes.txt report.txt
projects/alpha/documents/drafts:
draft_v1.txt
mv
: Dateien und Verzeichnisse verschieben und umbenennen
Der Befehl mv
verschiebt Dateien von einem Ort zu einem anderen. Er kann auch verwendet werden, um Dateien oder Verzeichnisse umzubenennen. Wenn Sie sich den absoluten Pfad zu einer Datei als ihren vollständigen Namen vorstellen, dann ist das Verschieben einer Datei effektiv dasselbe wie das Umbenennen einer Datei. Der Inhalt der verschobenen Dateien bleibt unverändert.
Benennen wir notes.txt
im Verzeichnis documents
in meeting_notes.txt
um.
mv documents/notes.txt documents/meeting_notes.txt
Überprüfen Sie die Umbenennung:
ls documents
Sie sollten jetzt meeting_notes.txt
anstelle von notes.txt
sehen.
Verschieben wir nun report.txt
aus dem Verzeichnis reports
nach documents/drafts
.
mv reports/report.txt documents/drafts/
Überprüfen Sie die Verschiebung:
ls reports
Das Verzeichnis reports
sollte jetzt leer sein.
ls documents/drafts
Sie sollten draft_v1.txt
und report.txt
im Verzeichnis documents/drafts
sehen.
Die Option -v
für mv
zeigt eine detaillierte Ausgabe der Befehlsoperationen an, was zur Bestätigung hilfreich sein kann.
mv -v documents/meeting_notes.txt documents/final_notes.txt
Sie sehen eine Ausgabe wie:
renamed 'documents/meeting_notes.txt' -> 'documents/final_notes.txt'
rm
: Dateien und Verzeichnisse entfernen
Der Befehl rm
entfernt Dateien. Seien Sie vorsichtig mit rm
, da gelöschte Dateien in der Regel nicht über die Befehlszeile wiederhergestellt werden können.
Erstellen wir eine temporäre Datei, um rm
zu üben.
touch temp_file.txt
Entfernen Sie nun temp_file.txt
:
rm temp_file.txt
Überprüfen Sie die Entfernung:
ls
temp_file.txt
sollte nicht mehr aufgelistet sein.
Standardmäßig entfernt rm
keine Verzeichnisse. Wenn Sie versuchen, ein nicht leeres Verzeichnis ohne die richtige Option zu entfernen, erhalten Sie einen Fehler.
rm presentations
Sie sehen einen Fehler:
rm: cannot remove 'presentations': Is a directory
Um Verzeichnisse und deren Inhalt zu entfernen, müssen Sie die Option -r
(rekursiv) verwenden. Der Befehl rm -r
durchläuft zuerst jedes Unterverzeichnis und entfernt einzeln dessen Dateien, bevor er jedes Verzeichnis entfernt.
Entfernen wir das Verzeichnis presentations
und seinen Inhalt (derzeit leer, aber -r
ist immer noch für Verzeichnisse erforderlich).
rm -r presentations
Überprüfen Sie die Entfernung:
ls
presentations
sollte nicht mehr aufgelistet sein.
Die Option -i
für rm
fordert interaktiv eine Bestätigung an, bevor jede Datei gelöscht wird. Dies ist eine gute Sicherheitsmaßnahme.
Erstellen wir ein paar weitere temporäre Dateien und entfernen Sie sie dann interaktiv.
touch file1.txt file2.txt
rm -i file1.txt file2.txt
Sie werden für jede Datei aufgefordert:
rm: remove regular empty file 'file1.txt'? y
rm: remove regular empty file 'file2.txt'? y
Geben Sie y
ein und drücken Sie die Eingabetaste für jede Eingabeaufforderung, um die Löschung zu bestätigen.
Die Option -f
(force) erzwingt die Entfernung ohne Aufforderung zur Bestätigung durch den Benutzer. Wenn Sie sowohl -i
als auch -f
angeben, hat -f
Vorrang. Verwenden Sie -f
mit äußerster Vorsicht.
Zum Schluss bereinigen wir das Verzeichnis projects
.
rm -r projects
Überprüfen Sie, ob projects
gelöscht wurde:
ls
rmdir
: Leere Verzeichnisse entfernen
Sie können auch den Befehl rmdir
verwenden, um leere Verzeichnisse zu entfernen. Er schlägt fehl, wenn das Verzeichnis nicht leer ist.
Erstellen wir ein leeres Verzeichnis und entfernen es mit rmdir
.
mkdir empty_dir
rmdir empty_dir
Überprüfen Sie die Entfernung:
ls
empty_dir
sollte nicht mehr aufgelistet sein.
Wenn Sie versuchen, ein nicht leeres Verzeichnis mit rmdir
zu entfernen, schlägt dies fehl:
mkdir test_dir
touch test_dir/test_file.txt
rmdir test_dir
Sie sehen einen Fehler:
rmdir: failed to remove 'test_dir': Directory not empty
Denken Sie daran, rm -r
für nicht leere Verzeichnisse zu verwenden.
rm -r test_dir