GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Benennen Sie alle Dateien und Verzeichnisnamen in Linux in Kleinbuchstaben um

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.

  1. Erklärung von „Alles ist eine Datei“ und Dateitypen in 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 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.


Linux
  1. Alle [Dateiname].mp4 finden und [Dateiname].audio umbenennen?

  2. Löschen Sie Dateien und Verzeichnisse anhand ihrer Namen. Keine solche Datei oder Ordner?

  3. Linux Alle Symlinks in Bezug auf ein Verzeichnis finden und entfernen?

  4. Wie benenne ich alle Ordner und Dateien unter Linux in Kleinbuchstaben um?

  5. Wie finde ich alle Dateien mit einem bestimmten übergeordneten Verzeichnis in Linux?

Find-Befehl in Linux (Dateien und Verzeichnisse suchen)

So benennen Sie Dateien und Verzeichnisse in Linux um

So zählen Sie Dateien im Verzeichnis in Linux

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach

Linux:Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen finden

Wie benenne ich alle Dateien mit Sonderzeichen und Leerzeichen in einem Verzeichnis um?