Website-Suche

Benennen Sie unter Linux alle Datei- und Verzeichnisnamen 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 unter Linux alle Datei- und Verzeichnisnamen in Kleinbuchstaben umbenennen.

Lesen Sie auch: So finden Sie die wichtigsten Verzeichnisse und Dateien (Speicherplatz) unter Linux heraus

Es gibt mehrere Möglichkeiten, dies zu erreichen, aber wir erklären Ihnen zwei der effizientesten und zuverlässigsten Methoden. Für diesen Leitfaden haben wir ein Verzeichnis mit dem Namen Files verwendet, das die folgende Struktur hat:

find Files -depth

1. Verwenden Sie die Befehle „find“, „xargs“ und „rename“ gemeinsam

rename ist ein einfaches Befehlszeilenprogramm zum gleichzeitigen Umbenennen mehrerer Dateien unter Linux. Sie können es zusammen mit dem Suchdienstprogramm 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 aus der find-Ausgabe zu verwenden.

Beispielausgabe nach dem Umbenennen von Dateien und Unterverzeichnissen in Kleinbuchstaben im Verzeichnis Dateien.

Eine weitere alternative Möglichkeit, die Befehle find und mv in einem Skript zu verwenden, wie unten erläutert.

2. Verwenden der Befehle „find“ und „mv“ im Shell-Skript

Erstellen Sie zunächst Ihr Skript (Sie können ihm einen beliebigen Namen geben):

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 dann 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.

  1. Erklärung von „Alles ist eine Datei“ und Dateitypen unter Linux
  2. fswatch – Überwacht Dateien und Verzeichnisänderungen oder Modifikationen in Linux
  3. Fasd – Ein Befehlszeilentool, das schnellen Zugriff auf Dateien und Verzeichnisse bietet
  4. FSlint – So finden und entfernen Sie doppelte Dateien unter Linux

In dieser Anleitung erklären wir Ihnen, wie Sie unter Linux alle Dateien und Verzeichnisse in Kleinbuchstaben umbenennen. Wenn Sie Fehler erhalten, kontaktieren Sie uns bitte über das unten stehende Feedback-Formular. Sie können uns auch andere Methoden anbieten, um dasselbe zu erreichen.