¿Cómo cambiar el nombre de varios archivos eliminando la extensión?

¿Cómo cambiar el nombre de varios archivos eliminando la extensión?

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?

Respuesta1

perl's rename(como se encuentra normalmente en Debian, donde también se llama prename), oeste derivado( renamepaquete en Debian):

rename 's/\.tif$//' *.tif

util-linux rename(como se encuentra normalmente en Red Hat, rename.ulen Debian):

rename -- .tif '' *.tif

(tenga en cuenta que ese cambiaría el nombre blah.tiffany.tifa blahfany.tif)

Respuesta2

Para no cambiar el 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)

Respuesta3

rename -- .oldext .newext *.oldext

Esto sustituye la antigua extensión por la nueva. Para simplemente eliminar 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 cambiarán de nombre a filename.gz.

Consulte el artículo:Linux: eliminar extensiones de archivos para varios archivospara detalles.

Respuesta4

perl-rename 's/\.tif//' *.tif

Úselo -npara funcionamiento en seco.

información relacionada