Tengo varios archivos tiff llamados:
sw.001.tif
sw.002.tif
...
y quiero eliminar el .tifal final de cada uno de los archivos. ¿Cómo puedo usar el renamecomando para hacer esto?
Tengo varios archivos tiff llamados:
sw.001.tif
sw.002.tif
...
y quiero eliminar el .tifal final de cada uno de los archivos. ¿Cómo puedo usar el renamecomando para hacer esto?
Respuestas:
perl's rename(como se encuentra típicamente en Debian donde también se llama prename), o este derivado ( renamepaquete en Debian):
rename 's/\.tif$//' *.tif
util-linux rename(como se encuentra típicamente en Red Hat, rename.ulen Debian):
rename -- .tif '' *.tif
(tenga en cuenta que se cambiaría el nombre blah.tiffany.tifa blahfany.tif)
Para un cambio de nombre, puede hacer:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i para advertir contra la sustitución de un archivo)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Esto sustituye la antigua extensión por la nueva. Para eliminar simplemente la extensión, puede pasar explícitamente una cadena vacía como argumento.
rename -- .gz.tmp '' *.gz.tmp
Con el comando anterior, todos los archivos con .gz.tmpextensión en la carpeta actual serán renombrados filename.gz.
Consulte el artículo: Linux: elimine las extensiones de archivo para varios archivos para obtener más detalles.
renamees incompatible con (y mucho más limitada que) el renamecomando tradicional de perl.
.oldextdentro del nombre del archivo, no necesariamente la extensión ( foo.oldextasy.oldextsería renombrada como footasy.oldext).
podemos hacer esto recursivo
for i in *.gz; do mv -i $i `basename $i .gz`; done