Linux-Tutorial / Dateien und Verzeichnisse verwalten: Erstellen, Kopieren, Verschieben und Löschen
Verwenden Sie mkdir, um ein Verzeichnis zu erstellen, touch, um eine leere Datei vorzubereiten, cp und mv, um sie zu kopieren oder zu verschieben, und rm und rmdir, um Dateien und leere Verzeichnisse zu entfernen. Diese Lektion hält alle Änderungen in einem neuen Übungsordner in Ihrem Home-Verzeichnis und überprüft das Ergebnis nach jeder Operation.
Wenden Sie Überprüfungen des aktuellen Verzeichnisses und der Pfade an, bevor Sie Dateien erstellen oder verschieben. Wenn das Übungsverzeichnis bereits existiert, wählen Sie einen anderen neuen Namen; fahren Sie nicht fort, wenn die Erstellung fehlschlägt.
Bereiten Sie ein sicheres Übungsverzeichnis vor
Diese Schritte gehen von Bash und einem normalen Benutzerkonto aus. ~/linux-course-07-practice soll ein neues, leeres Verzeichnis sein. Wenn es bereits existiert, wählen Sie einen anderen Namen, statt vorhandene Daten zu berühren. Der erste mkdir-Befehl gibt einen Fehler aus, wenn der Name bereits vergeben ist; betrachten Sie das als Grund zum Anhalten, nicht als einen Schritt, den man überspringen sollte.
mkdir ~/linux-course-07-practice
Bei Erfolg gibt mkdir normalerweise nichts aus. Überprüfen Sie, dass das Verzeichnis mit ls -ld erstellt wurde. Der Rest der Übung geht davon aus, dass dieser Schritt erfolgreich war und das Verzeichnis leer war.
ls -ld ~/linux-course-07-practice
Erstellen Sie zwei Unterverzeichnisse und listen Sie dann das Übungsverzeichnis auf:
mkdir ~/linux-course-07-practice/drafts ~/linux-course-07-practice/archive ls ~/linux-course-07-practice
Sie sollten archive und drafts sehen. mkdir -p ist nützlich beim Erstellen tieferer Pfade, aber es akzeptiert auch ein vorhandenes Verzeichnis, daher wird es in dieser Übung nicht verwendet.
Eine leere Datei erstellen und überprüfen
touch erstellt eine leere Datei, wenn deren Name nicht existiert. Bei einer vorhandenen Datei kann es stattdessen Zeitstempel aktualisieren, daher sollte es nicht als Befehl verstanden werden, der nur neue Dateien erstellt.
touch ~/linux-course-07-practice/drafts/notes.txt ls -l ~/linux-course-07-practice/drafts/notes.txt
Da die neue Datei keinen Inhalt hat, zeigt ls -l in der Regel eine Größe von 0 Bytes an. Berechtigungen und Datumsangaben hängen von Ihrem System ab. touch schreibt keinen Text in die Datei; das erfordert einen Editor oder einen anderen Befehl.
Kopieren und Umbenennen vergleichen
cp belässt die Quelle an ihrem Platz und erstellt eine separate Kopie. Dieser Befehl kopiert notes.txt von drafts nach archive. Mit GNU cp fragt -i, bevor eine vorhandene Zieldatei mit demselben Namen überschrieben wird.
cp -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/archive/notes.txt ls -1 ~/linux-course-07-practice/drafts ls -1 ~/linux-course-07-practice/archive
Die beiden ls -1-Befehle erzeugen nacheinander die folgenden Zeilen: zuerst den Inhalt von drafts, dann den von archive. Beide enthalten notes.txt. Wenn der Inhalt einer Kopie später geändert wird, wird die andere nicht automatisch aktualisiert.
notes.txt notes.txt
mv verschiebt eine Datei an einen anderen Ort oder ändert ihren Namen innerhalb desselben Verzeichnisses. Hier wird die Originaldatei in notes-old.txt umbenannt; die archivierte Kopie behält ihren ursprünglichen Namen.
mv -i ~/linux-course-07-practice/drafts/notes.txt ~/linux-course-07-practice/drafts/notes-old.txt ls -1 ~/linux-course-07-practice/drafts ls -1 ~/linux-course-07-practice/archive
Jetzt ist die erste Ausgabereihe, von drafts, notes-old.txt. Die zweite, von archive, bleibt notes.txt. Der Quellname hat sich geändert, ohne dass die Kopie geändert wurde.
notes-old.txt notes.txt
Wenn das letzte Argument an cp oder mv ein existierendes Verzeichnis ist, wird die Datei unter ihrem Namen in dieses Verzeichnis gelegt. Prüfen Sie, ob das Ziel eine Datei oder ein Verzeichnis ist, bevor Sie den Befehl ausführen. Genehmigen Sie keine -i-Überschreibungsaufforderung, ohne sie zu lesen.
Entfernen Sie eine Datei und ein leeres Verzeichnis
rm entfernt eine benannte Datei. Standardmäßig wird die Datei nicht in den Papierkorb verschoben, prüfen Sie also zuerst den Pfad mit ls. Hier fordert -i vor der Löschung eine Bestätigung an. Lesen Sie den Dateinamen in der Eingabeaufforderung und stimmen Sie nur zu, wenn es das beabsichtigte Ziel ist.
ls -l ~/linux-course-07-practice/drafts/notes-old.txt rm -i ~/linux-course-07-practice/drafts/notes-old.txt
Wenn Sie die Löschung bestätigt haben, ist drafts jetzt leer. Verwenden Sie rmdir, der nur ein leeres Verzeichnis entfernt:
rmdir ~/linux-course-07-practice/drafts ls ~/linux-course-07-practice
Die endgültige Auflistung enthält immer noch archive. Da archive notes.txt enthält, würde ein Versuch, es mit rmdir zu entfernen, fehlschlagen. Bewahren Sie die Übungsdaten auf, bis Sie sie nicht mehr benötigen, und prüfen Sie dann den genauen Pfad, bevor Sie sie separat bereinigen. Ein pauschales rm -rf ist keine gute Abkürzung für diese Anfängerübung.
Überprüfungen, die vor dem Ändern von Dateien durchgeführt werden sollten
- Aktueller Standort: Führen Sie
pwdaus, wenn ein relativer Pfad davon abhängt, wo Sie sich befinden. - Ziel: Verwenden Sie
ls -ld, um die benannte Datei oder das Verzeichnis selbst zu überprüfen. - Überschreiben: Sichern Sie wichtige Daten und überprüfen Sie das Ziel auf einen vorhandenen Namen, bevor Sie kopieren oder verschieben.
- Löschen:
rmbietet keinen integrierten Wiederherstellungsmechanismus; raten Sie nicht einen kurzen Pfad und führen Sie ihn aus.
Für weitere Optionen und Sonderfälle siehe die Anleitungen zu touch, mkdir, cp, mv, rm und rmdir.
Offizielle Dokumentation
Konsultieren Sie das GNU Coreutils-Handbuch für diese Befehle und ihre Optionen. Überprüfen Sie man oder --help auf Ihrem eigenen System, wenn die installierte Implementierung wichtig ist.




