Como renomear vários arquivos removendo a extensão?

Como renomear vários arquivos removendo a extensão?

Eu tenho vários arquivos tiff chamados:

sw.001.tif
sw.002.tif
...

e quero remover o .tifno final de cada um dos arquivos. Como posso usar o renamecomando para fazer isso?

Responder1

perl's rename(como normalmente encontrado no Debian, onde também é chamado prename), ouesta derivada( renamepacote no Debian):

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

util-linux rename(como normalmente encontrado no Red Hat, rename.ulno Debian):

rename -- .tif '' *.tif

(observe que esse seria renomeado blah.tiffany.tifpara blahfany.tif)

Responder2

Para não renomear, você pode fazer:

$ for i in *.tif; do mv -i $i `basename $i .tif`; done

(-i para avisar contra a substituição de um arquivo)

Responder3

rename -- .oldext .newext *.oldext

Isso substitui a extensão antiga pela nova. Para simplesmente remover a extensão, você pode passar explicitamente uma string vazia como argumento.

rename -- .gz.tmp  '' *.gz.tmp

Com o comando acima todos os arquivos com .gz.tmpextensão na pasta atual serão renomeados para filename.gz.

Consulte o artigo:Linux: remova extensões de arquivos para vários arquivospara detalhes.

Responder4

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

Use -npara simulação.

informação relacionada