Ich habe eine Reihe von Tiff-Dateien mit dem Namen:
sw.001.tif
sw.002.tif
...
und ich möchte die .tifam ende jeder datei entfernen . Wie kann ich den renameBefehl verwenden, um dies zu tun?
Ich habe eine Reihe von Tiff-Dateien mit dem Namen:
sw.001.tif
sw.002.tif
...
und ich möchte die .tifam ende jeder datei entfernen . Wie kann ich den renameBefehl verwenden, um dies zu tun?
Antworten:
perl's rename(wie es normalerweise unter Debian zu finden ist, wo es auch genannt wird prename) oder dieses Derivat ( renamePaket unter Debian):
rename 's/\.tif$//' *.tif
util-linux rename(wie in der Regel unter Red Hat und rename.ulDebian zu finden):
rename -- .tif '' *.tif
(beachten Sie , dass man würde umbenennen blah.tiffany.tifzu blahfany.tif)
Bei einem Nicht-Umbenennen können Sie Folgendes tun:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i warnt vor dem Ersetzen einer Datei)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Dadurch wird die alte durch die neue Erweiterung ersetzt. Um die Erweiterung einfach zu entfernen, können Sie explizit eine leere Zeichenfolge als Argument übergeben.
rename -- .gz.tmp '' *.gz.tmp
Mit dem obigen Befehl werden alle Dateien mit der .gz.tmpErweiterung im aktuellen Ordner in umbenannt filename.gz.
Weitere Informationen finden Sie im Artikel: Linux: Entfernen Sie Dateierweiterungen für mehrere Dateien .
renamemit dem traditionellen renameBefehl von inkompatibel (und viel eingeschränkter) ist perl.
.oldextinnerhalb des Dateinamens ersetzt, nicht unbedingt die Erweiterung ( foo.oldextasy.oldextwürde in umbenannt werden footasy.oldext).
können wir dies rekursiv machen
for i in *.gz; do mv -i $i `basename $i .gz`; done