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

Dateien rekursiv umbenennen (Erweiterung ändern) in Linux

Habe es herausgefunden

find . -name "*.andnav" -exec rename -v 's/\.andnav$/\.tile/i' {} \;
./0/0.png.andnav renamed as ./0/0.png.tile
./0/1.png.andnav renamed as ./0/1.png.tile
./1/0.png.andnav renamed as ./1/0.png.tile
./1/1.png.andnav renamed as ./1/1.png.tile

entfernen Sie natürlich das -v, wenn Sie es tatsächlich tun, oder es wird Zeit verschwendet, alle Dateien anzuzeigen


Mit zsh:

autoload zmv
zmv -n '(**/)(*).andnav' '$1$2.tile'

Entfernen Sie den -n um die Umbenennung tatsächlich durchzuführen.


Etwas wie:

find . -name '*.andnav' -exec sh -c 'mv "$0" "${0%.andnav}.tile"' {} \;

Erklärung

Das Obige beginnt mit dem Durchlaufen des Verzeichnisbaums, beginnend beim aktuellen Arbeitsverzeichnis (. ). Jedes Mal, wenn ein Dateiname mit dem Muster *.andnav übereinstimmt (z. B. foo.andnav ) wird folgender Befehl ausgeführt:

sh -c 'mv "$0" "${0%.andnav}.tile"' foo.andnav

Wobei $0 ist foo.andnav und ${0%.andnav}.tile ersetzt die .andnav Suffix mit .tile also im Grunde:

mv foo.andnav foo.tile

Linux
  1. So benennen Sie Dateien unter Linux um

  2. So zeigen oder ändern Sie die ACL in Linux-Dateien

  3. Linux-Befehl zum Umbenennen

  4. Dateien in einem Linux-Verzeichnis rekursiv zählen

  5. Versteckte Dateien rekursiv kopieren - Linux

So benennen Sie Dateien über die Befehlszeile in Linux um

So benennen Sie eine Datei (en) in Linux um

8 Methoden zum gleichzeitigen Umbenennen mehrerer Dateien in Linux

So entfernen Sie Dateien mit einer bestimmten Erweiterung in Linux

Wie man Dateien in Linux rekursiv auflistet

Linux-Erweiterung zum Umbenennen mehrerer Dateien