Benennen Sie alle Dateien und Verzeichnisnamen unter Linux in Kleinbuchstaben um
In unserem vorherigen Artikel haben wir beschrieben, wie man die Anzahl der Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis zählt. Diese Anleitung zeigt Ihnen, wie Sie alle Datei- und Verzeichnisnamen unter Linux in Kleinbuchstaben umbenennen können.
Lesen Sie auch: So finden Sie die besten Verzeichnisse und Dateien (Speicherplatz) unter Linux heraus
Es gibt mehrere Möglichkeiten, dies zu erreichen, aber wir erklären zwei der effizientesten und zuverlässigsten Methoden. Für die Zwecke dieses Handbuchs haben wir ein Verzeichnis mit dem Namen Files verwendet, das die folgende Struktur hat:
# find Files -depth
1. Verwenden von find-, xargs- und rename-Befehlen zusammen
rename ist ein einfaches Befehlszeilenprogramm zum gleichzeitigen Umbenennen mehrerer Dateien unter Linux. Sie können es zusammen mit dem Dienstprogramm 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/(.*)\/([^\/]*)/\\/\L$2/' {} \;
Erläuterung der Optionen, die im obigen Befehl verwendet werden.
-depth– listet den Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst auf.-n 1– weist xargs an, maximal ein Argument pro Befehlszeile aus der find-Ausgabe zu verwenden.
Beispielausgabe nach dem Umbenennen von Dateien und Unterverzeichnissen in Kleinbuchstaben im Verzeichnis Dateien.
Eine weitere alternative Möglichkeit mit den Befehlen find und mv in einem Skript, wie unten erläutert.
2. Verwenden der Befehle find und mv im Shell-Skript
Erstellen Sie zunächst Ihr Skript (Sie können es beliebig benennen):
$ cd ~/bin
vi rename-files.sh
Fügen Sie dann den unten stehenden 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 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 unter Linux
- fasd – ein Kommandozeilentool, das schnellen Zugriff auf Dateien und Verzeichnisse bietet
- FSlint – So finden und entfernen Sie doppelte Dateien unter Linux
In dieser Anleitung haben wir Ihnen erklärt, wie Sie alle Dateien und Verzeichnisse unter Linux in Kleinbuchstaben umbenennen können. 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.


