567 Stimmen

Wie benenne ich die Erweiterung einer Reihe von Dateien um?

In einem Verzeichnis habe ich ein Bündel von *.html Dateien. Ich würde sie gerne alle umbenennen in *.txt

Wie kann ich das tun? Ich verwende die Bash-Shell.

37voto

izilotti Punkte 4631

Auf einem Mac...

  1. Installieren Sie umbenennen falls Sie es noch nicht getan haben: brew install rename
  2. rename -S .html .txt *.html

16voto

bdombro Punkte 1065

Dies ist die eleganteste Lösung, die ich gefunden habe, die unter OSX und Linux funktioniert, und sie funktioniert auch gut mit Git!

find . -name "*.js" -exec bash -c 'mv "$1" "${1%.js}".tsx' - '{}' \;

und mit git:

find . -name "*.js" -exec bash -c 'git mv "$1" "${1%.js}".tsx' - '{}' \;

16voto

Bheru Lal Lohar Punkte 830

Für Ubuntu-Benutzer :

rename 's/\.html$/\.txt/' *.html

10voto

Michael Leonard Punkte 1575

Diese Frage bezieht sich ausdrücklich auf Bash, aber wenn Sie zufällig ZSH zur Verfügung haben, ist es ziemlich einfach:

zmv '(*).*' '$1.txt'

Wenn Sie zsh: command not found: zmv dann einfach laufen:

autoload -U zmv

Und dann versuchen Sie es erneut.

Dank dieser Originalartikel für den Hinweis auf zmv.

9voto

Harat Punkte 1028

In Linux oder Window git bash oder window's wsl, versuchen Sie den folgenden Befehl, um jede Dateierweiterung im aktuellen Verzeichnis oder Unterverzeichnissen oder sogar deren Unterverzeichnissen mit nur einer Codezeile zu ändern

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X