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

Dateierweiterungen in Bash rekursiv ändern

Keine der vorgeschlagenen Lösungen hat bei einer Neuinstallation von Debian 14 für mich funktioniert. Dies sollte auf jedem Posix/MacOS funktionieren

find ./ -depth -name "*.t1" -exec sh -c 'mv "$1" "${1%.t1}.t2"' _ {} \;

Alle Credits an:https://askubuntu.com/questions/35922/how-do-i-change-extension-of-multiple-files-recursively-from-the-command-line


Wenn Ihre Version von bash unterstützt den globstar Option (Version 4 oder höher):

shopt -s globstar
for f in **/*.t1; do
    mv "$f" "${f%.t1}.t2"
done 

Verwendung:

find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +

Wenn Sie rename haben verfügbar, dann verwenden Sie one davon:

find . -name '*.t1' -exec rename .t1 .t2 {} +
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' +

Ich würde in bash so vorgehen:

for i in $(ls *.t1); 
do
    mv "$i" "${i%.t1}.t2" 
done

BEARBEITEN:Mein Fehler:Es ist nicht rekursiv, hier ist mein Weg zum rekursiven Ändern des Dateinamens:

for i in $(find `pwd` -name "*.t1"); 
do 
    mv "$i" "${i%.t1}.t2"
done

Linux
  1. Die Bash‘?

  2. Firefox-Protokolldatei finden?

  3. Suchen und kopieren Sie die Datei mit Bash

  4. Wie ändere ich die Berechtigungen für bestimmte Dateimuster/-erweiterungen?

  5. Bash-Funktion, um das neueste Dateiübereinstimmungsmuster zu finden

Bash-Quellbefehl

Bash:An Datei anhängen

35 Bash-Skriptbeispiele

So ändern Sie den GNOME-Hintergrund automatisch in Intervallen mit BASH

So schließen Sie bestimmte Dateierweiterungen beim rekursiven Kopieren von Dateien aus

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl