So benennen Sie ein Verzeichnis in Linux um
Das Umbenennen eines Verzeichnisses in Linux ist einfach und es gibt viele Möglichkeiten, dies zu tun. Hier ist, wie es geht, vom Umbenennen eines Verzeichnisses bis zum Suchen und Umbenennen vieler.
Ihre Daten sind sicher
Das Umbenennen von Verzeichnissen ist etwas, das wir alle von Zeit zu Zeit tun müssen.
Wir können ein Verzeichnis erstellen und seinen Namen falsch geschrieben haben, und wir möchten es beheben. Häufig ändert sich der Zweck eines Verzeichnisses im Laufe der Zeit oder während der Lebensdauer eines Projekts, und Sie möchten den Namen ändern, um die neue Verwendung widerzuspiegeln. Möglicherweise haben Sie eine Archivdatei entpackt und sie hat einen Verzeichnisbaum mit Verzeichnisnamen in Großbuchstaben erstellt, und Sie möchten, dass sie in Kleinbuchstaben geschrieben werden.
Unabhängig von der Ursache. Das Umbenennen eines Verzeichnisses ändert nichts an den darin enthaltenen Daten. Es ändert den Pfad zu diesen Daten, aber die Dateien und Verzeichnisse in Ihrem umbenannten Verzeichnis sind nicht betroffen.
Benennen Sie Systemverzeichnisse nicht um. Das Ändern des Pfads zu Systemdateien und Befehlen, um es milde auszudrücken, wirkt sich negativ auf den Betrieb Ihres Computers aus. Wenn Sie verwenden müssen, sudo
um ein Verzeichnis umzubenennen – es sei denn, Sie wissen wirklich, was Sie tun -, sollten Sie es wahrscheinlich nicht umbenennen.
Mit dem mv-Befehl
Im einfachsten Fall brauchen wir eigentlich nur einen mv
Befehl. Es ist fester Bestandteil jeder Linux-Distribution, es muss also nichts installiert werden.
Zum mv
Zeitpunkt des Schreibens dieses Artikels ist das Team über 50 Jahre alt. Es geht auf die frühen Tage von Unix zurück, als kurze und kryptische Befehle in Mode waren, wahrscheinlich um die Anzahl der Zeichen zu reduzieren, die über langsame serielle Leitungen von Fernschreibern und dummen Terminals zum echten Computer übertragen werden mussten.
Es bedeutet eigentlich „verschieben“ und kann verwendet werden, um Dateien von Verzeichnis zu Verzeichnis zu verschieben. Wenn Sie eine Datei an denselben Ort verschieben, an dem sie sich bereits befindet, und ihr einen neuen Namen geben, benennen Sie die Datei um. Und wir können dasselbe mit Verzeichnissen machen.
Dieses Verzeichnis hat zwei Unterverzeichnisse.
ls
Um ein Verzeichnis umzubenennen, verwenden wir den Befehl mv. Wir müssen den aktuellen Verzeichnisnamen und den neuen Namen angeben.
mv old-work archive-2
Wenn sich das Verzeichnis, das Sie umbenennen möchten, nicht in Ihrem aktuellen Verzeichnis befindet, geben Sie den Pfad und Namen des Verzeichnisses an.
mv ~/htg/old-work ~/htg/archive-2
ls
Verwenden des Dateibrowsers
Dateibrowser können Verzeichnisse umbenennen. Die Taste in der GNOME-Dateianwendung ist F2. Wenn Sie ein Verzeichnis auswählen und F2 drücken, wird das Dialogfeld „Ordner umbenennen“ geöffnet.
Geben Sie einen neuen Namen ein und klicken Sie auf die grüne Schaltfläche Umbenennen.
Das Verzeichnis wurde für Sie umbenannt.
Es ist so einfach.
Befehl umbenennen
Wenn Ihre Anforderungen komplexer sind als das einfache Umbenennen eines Verzeichnisses, müssen Sie möglicherweise rename
den Befehl verwenden. Dadurch können Sie Perl-Ausdrücke verwenden, um Dateien und Verzeichnisse umzubenennen. Es bietet eine leistungsfähigere und flexiblere Möglichkeit, Verzeichnisse umzubenennen.
Wir werden über einen Perl-basierten Befehl sprechen rename
. Es gibt einen anderen, älteren Befehl rename
, der Teil der zentralen Linux-Dienstprogramme ist. Sie müssen wahrscheinlich den Perl-Befehl installieren, den rename
wir verwenden möchten.
Um Namenskonflikte mit einem bestehenden rename
Befehl zu vermeiden, wird der Perl-Befehl in Fedora und Manjaro rename
aufgerufen . In Ubuntu sind beide Befehle und symbolische Links, die in eine Binärdatei namens .prename
perl-rename
rename
prename
file-rename
In Manjaro müssen Sie also den Befehl verwenden perl-rename
, und in Fedora müssen Sie verwenden prename
. Unter Ubuntu können Sie rename
entweder prename
.
Um die Perl-Umbenennung zu installieren, müssen Sie unter Ubuntu Folgendes eingeben:
sudo apt install rename
Bei Fedora lautet der Befehl:
sudo dnf install prename
Bei Manjaro heißt das Paket perl-rename
.
sudo pacman -Sy perl-rename
Stellen Sie sicher, dass Sie den richtigen Befehl für Ihre Distribution verwenden, wenn Sie die Beispiele durcharbeiten möchten.
Erste Schritte mit Umbenennung
Der Befehl rename
nimmt reguläre Perl-Ausdrücke und wendet sie auf eine Datei oder ein Verzeichnis oder auf eine Gruppe von Dateien oder Verzeichnissen an.
Unser Katalog enthält eine Sammlung anderer Kataloge.
ls
Ihre Namen sind eine Mischung aus Kleinbuchstaben, Großbuchstaben und Groß- und Kleinschreibung. Wir können sie alle mit einem geeigneten Ausdruck in Kleinbuchstaben umwandeln.
rename 'y/A-Z/a-z/' *
ls
Alle Verzeichnisse werden jetzt in Kleinbuchstaben geschrieben, unabhängig davon, ob sie zuvor vollständig in Großbuchstaben geschrieben waren oder einen ungeraden Großbuchstaben enthielten.
Die ganze Magie liegt im Ausdruck. Der Ausdruck wird in einfache Anführungszeichen “ '
“ eingeschlossen. Das meint das ganze Team.
- y: Dies bedeutet, im ersten Zeichenbereich nach einem beliebigen Zeichen zu suchen und es durch das entsprechende Zeichen im zweiten Zeichenbereich zu ersetzen.
- /AZ/az/: Der erste Bereich umfasst alle Buchstaben von „A“ bis „Z“, und der zweite Bereich umfasst alle Zeichen von „a“ bis „z“.
- *: Ein Stern als Platzhalter bedeutet, dass dies für alle Verzeichnisse gilt.
Mit anderen Worten, der Befehl lautet „Ersetzen Sie für alle Verzeichnisse alle Großbuchstaben durch die entsprechenden Kleinbuchstaben“.
Offensichtlich können Sie ein einzelnes Verzeichnis mit umbenennen rename
, obwohl dies überflüssig erscheint. Mit werden Sie schneller sein mv
.
rename 's/gamma/epsilon-2/' *
ls
Das „S“ in diesem Ausdruck steht für Replacement. Es überprüft jedes Verzeichnis, um zu sehen, ob sein Name „gamma“ ist. Wenn ja, wird es durch „epsilon-2“ ersetzt. Beachten Sie jedoch, dass dies beispielsweise auch mit einem Verzeichnis namens „gamma-zeta“ übereinstimmen würde, wenn Sie es in „epsilon-2-zeta“ umbenennen.
Dies kann vermieden werden, indem der ersten Klausel des Ausdrucks die Metazeichen “ “ ^
für Zeilenanfang und “ “ für Zeilenende hinzugefügt werden.$
ls
rename 's/^gamma$/epsilon-2/' *
ls
Das Verzeichnis „epsilon-2“ bleibt dabei unberührt.
Umbenennen mit anderen Befehlen verwenden
Wir können andere Befehle verwenden, um die Verzeichnisse zu finden, an denen wir rename
arbeiten möchten. Wenn wir eine Reihe verschachtelter Verzeichnisse haben und alle diese mit „-old“ enden umbenennen möchten, um mit „-archive“ zu enden, können wir dies mit find
und erreichen xargs
.
Wir müssen verwenden, xargs
weil rename
es keine Pipe-Eingabe akzeptiert. Der Befehl xargs
überwindet dieses Problem, indem er eine Pipe-Eingabe nimmt und der Befehlszeile einen weiteren Befehl als Befehlszeilenparameter hinzufügt.
So sieht unser Team aus:
find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"
- .: Wir weisen find an, im aktuellen Verzeichnis zu suchen. Natürlich kann es so oder so sein.
- -Tiefe: Tiefensuche verwenden. Das bedeutet, dass die Inhalte tiefer verschachtelter Unterverzeichnisse vor höheren verarbeitet werden.
- -type d: Suchen Sie nach Verzeichnissen, nicht nach Dateien.
- -name „*-old“: Suchhinweis. Wir suchen nach Verzeichnissen, deren Namen auf „-old“ enden.
- |: Wir leiten die Ausgabe des Find-Befehls an
xargs
den Befehl weiter. - xargs -r:
-r
(nicht ausführen, wenn leer) bedeutet, dass der Befehl nicht ausgeführt wird, wenn keine geeigneten Verzeichnisse vorhanden sind. - „s/old$/archive/“ umbenennen:
rename
auszuführender Befehl.
Unser Verzeichnisbaum sieht vor dem Befehl so aus.
Lassen Sie uns unseren Befehl ausführen:
Und wir können sehen, dass alle relevanten Verzeichnisse, einschließlich Unterverzeichnisse, umbenannt wurden.
Sie brauchen nichts anderes als mv
. Wenn Sie GUI-Anwendungen bevorzugen, können Sie den Dateibrowser verwenden. Wenn Sie viele Verzeichnisse umbenennen müssen, insbesondere wenn sie über den Verzeichnisbaum verstreut sind, benötigen Sie Flexibilität rename
.
Schreibe einen Kommentar