Ho un numero di file tiff chiamati:
sw.001.tif
sw.002.tif
...
e voglio rimuovere il .tifalla fine di ciascuno dei file. Come posso usare il renamecomando per fare questo?
Ho un numero di file tiff chiamati:
sw.001.tif
sw.002.tif
...
e voglio rimuovere il .tifalla fine di ciascuno dei file. Come posso usare il renamecomando per fare questo?
Risposte:
perl's rename(come in genere si trova su Debian dove viene anche chiamato prename), o questa derivata ( renamepacchetto su Debian):
rename 's/\.tif$//' *.tif
util-linux rename(come generalmente si trova su Red Hat, rename.ulsu Debian):
rename -- .tif '' *.tif
(nota che quello sarebbe rinomina blah.tiffany.tifa blahfany.tif)
Per un non rinominare, potresti fare:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i per mettere in guardia contro la sostituzione di un file)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Questo sostituisce la vecchia estensione con quella nuova. Per rimuovere semplicemente l'estensione è possibile passare esplicitamente una stringa vuota come argomento.
rename -- .gz.tmp '' *.gz.tmp
Con il comando precedente tutti i file con .gz.tmpestensione nella cartella corrente verranno rinominati filename.gz.
Fare riferimento all'articolo: Linux: rimuovere le estensioni di file per più file per i dettagli.
renamesia incompatibile con (e molto più limitata di) il renamecomando tradizionale da perl.
.oldextall'interno del nome del file, non necessariamente l'estensione ( foo.oldextasy.oldextverrebbe rinominata in footasy.oldext).
possiamo renderlo ricorsivo
for i in *.gz; do mv -i $i `basename $i .gz`; done