Ich möchte rekursiv durch ein Verzeichnis iterieren und die Erweiterung aller Dateien einer bestimmten Erweiterung ändern, sagen .t1
zu .t2
. Was ist der Bash-Befehl dafür?rekursiv Dateierweiterungen in Bash ändern
Antwort
Wenn Sie zur Verfügung haben umbenennen dann verwenden:
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' \;
Wenn Umbenennungs nicht verfügbar ist, dann verwenden:
find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' \;
'finden. -name '* .t1' -exec rename .t1 .t2 {} + ' –
(Meine Version von' rename' erlaubt den sed-Ausdruck nicht. Ich muss Linux lieben. Ich musste früher TotalCommander für Windows installieren mach sowas. –
Bitte benutze eine Parametererweiterung anstelle eines hässlichen 'sed'! –
Ich würde in bash auf diese Weise tun:
for i in $(ls *.t1);
do
mv "$i" "${i%.t1}.t2"
done
EDIT: mein Fehler: es ist nicht rekursiv, hier ist mein Weg für rekursive Dateinamen ändern:
for i in $(find `pwd` -name "*.t1");
do
mv "$i" "${i%.t1}.t2"
done
Oder Sie können einfach installieren Sie den Befehl mmv
und zu tun:
mmv '*.t1' '#1.t2'
Hier #1
ist der erste Teil glob heißt die *
in *.t1
.
oder in reiner bash stuff, wäre eine einfache Art und Weise sein:
for f in *.t1; do
mv "$f" "${i%.t1}.t2"
done
(dh: for
können Dateien aufzulisten, ohne die Hilfe eines externen Kommandos wie ls
oder find
)
HTH
Wenn Ihre Version von bash
unterstützt die globstar
Option (Version 4 oder höher):
shopt -s globstar
for f in **/*.t1; do
mv "$f" "${f%.t1}.t2"
done
- 1. Dateierweiterungen rekursiv umbenennen
- 2. Massenumbenennung von Dateierweiterungen rekursiv (Windows Batch)
- 3. Manipulieren Strings (Dateierweiterungen) in bash mit Suche
- 4. Bash: Dateien rekursiv entfernen
- 5. Wie Dateierweiterungen innerhalb Unterordner Batch ändern
- 6. Bash: Kopieren von Dateien rekursiv genannt, Ordnerstruktur
- 7. Powershell - rekursiv ändern Pfad Wert
- 8. Ändern von Array-Werten rekursiv in PHP
- 9. Ändern von Einstellungen für Dateierweiterungen in Expression Web 3
- 10. Mehrere Dateierweiterungen in OpenFileDialog
- 11. Ändern von Funktionsargumenten in Bash
- 12. bash: Verarbeitung (rekursiv) durch alle Dateien in einem Verzeichnis
- 13. Sichere Dateierweiterungen
- 14. PHP-Datei mehr Dateierweiterungen
- 15. ms Büro Dateierweiterungen
- 16. Dateinamen ändern mit Bash
- 17. Ändern Sharepoint Ansicht rekursiv Gruppe (Untergruppe)
- 18. Wie werden nicht vorhandene Unterverzeichnisse rekursiv mit Bash erstellt?
- 19. ESLint auf einer anderen Dateierweiterungen
- 20. Wie ersetzen rekursiv Teil des Dateinamens im bash
- 21. So kopieren Sie eine Verzeichnisstruktur in Ruby, ausgenommen bestimmte Dateierweiterungen
- 22. Bash-Script-Code ändern Perl
- 23. Bash - Dateiname ändern Datum + 1
- 24. TypeScript verschiedene Dateierweiterungen erklärt?
- 25. Bash $ {..//../ ..} nicht alle Vorkommen ändern
- 26. Benutzerdefinierte Dateierweiterungen IIS7
- 27. Laufwerk in Git Bash für Windows ändern
- 28. Argumente Variablenwerte in Bash-Skript ändern
- 29. bash- kann nicht Zeilen in Datei ändern
- 30. Was kann das Befehlssubstitutionsverhalten in bash ändern?
imho das ist keine doppelte Frage - die andere Frage ist nicht rekursiv –