In unserem vorherigen Artikel haben wir beschrieben, wie Sie die Anzahl der Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis zählen können. Diese Anleitung zeigt Ihnen, wie Sie alle Datei- und Verzeichnisnamen unter Linux in Kleinbuchstaben umbenennen.
Lesen Sie auch :So finden Sie die wichtigsten Verzeichnisse und Dateien (Festplattenspeicherplatz) in Linux heraus
Es gibt mehrere Möglichkeiten, dies zu erreichen, aber wir erklären zwei der effizientesten und zuverlässigsten Methoden. Für diese Anleitung haben wir ein Verzeichnis namens Files
verwendet die folgende Struktur hat:
# find Files -depth
1. Die gemeinsamen Befehle find, xargs und rename verwenden
rename ist ein einfaches Befehlszeilenprogramm zum gleichzeitigen Umbenennen mehrerer Dateien unter Linux. Sie können es zusammen mit dem Hilfsprogramm find verwenden, um alle Dateien oder Unterverzeichnisse in einem bestimmten Verzeichnis wie folgt in Kleinbuchstaben umzubenennen:
$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Erläuterung der im obigen Befehl verwendeten Optionen.
-depth
– listet den Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst auf.-n 1
– weist xargs an höchstens ein Argument pro Befehlszeile von find verwenden Ausgabe.
Beispielausgabe nach dem Umbenennen von Dateien und Unterverzeichnissen in Files
in Kleinbuchstaben Verzeichnis.
Ein weiterer alternativer Weg, die Befehle find und mv in einem Skript zu verwenden, wie unten erklärt.
2. Verwenden von find- und mv-Befehlen im Shell-Skript
Erstellen Sie zuerst Ihr Skript (Sie können es beliebig benennen):
$ cd ~/bin $ vi rename-files.sh
Fügen Sie dann den folgenden Code hinzu.
#!/bin/bash #print usage if [ -z $1 ];then echo "Usage :$(basename $0) parent-directory" exit 1 fi #process all subdirectories and files in parent directory all="$(find $1 -depth)" for name in ${all}; do #set new name in lower case for files and directories new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')" #check if new name already exists if [ "${name}" != "${new_name}" ]; then [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!" fi done echo echo #list directories and file new names in lowercase echo "Directories and files with new names in lowercase letters" find $(echo $1 | tr 'A-Z' 'a-z') -depth exit 0
Speichern und schließen Sie die Datei, machen Sie das Skript dann ausführbar und führen Sie es aus:
$ chmod +x rename-files.sh $ rename-files.sh Files #Specify Directory Name
Vielleicht möchten Sie auch die folgenden verwandten Artikel lesen.
- Erklärung von „Alles ist eine Datei“ und Dateitypen in Linux
- fswatch – Überwacht Dateien und Verzeichnisänderungen oder -modifikationen in Linux
- Fasd – Ein Befehlszeilentool, das schnellen Zugriff auf Dateien und Verzeichnisse bietet
- FSlint – So finden und entfernen Sie doppelte Dateien in Linux
In dieser Anleitung haben wir Ihnen erklärt, wie Sie alle Dateien und Verzeichnisse in Linux in Kleinbuchstaben umbenennen. Wenn Sie Fehler erhalten, kontaktieren Sie uns bitte über das Feedback-Formular unten. Sie können uns auch andere Methoden anbieten, um dasselbe zu tun.