Eu tenho vários arquivos tiff chamados:
sw.001.tif
sw.002.tif
...
e quero remover o .tif
no final de cada um dos arquivos. Como posso usar o rename
comando para fazer isso?
Eu tenho vários arquivos tiff chamados:
sw.001.tif
sw.002.tif
...
e quero remover o .tif
no final de cada um dos arquivos. Como posso usar o rename
comando para fazer isso?
Respostas:
perl
's rename
(como normalmente encontrado no Debian, onde também é chamado prename
), ou este derivado ( rename
pacote no Debian):
rename 's/\.tif$//' *.tif
util-linux
rename
(como normalmente encontrado no Red Hat, rename.ul
no Debian):
rename -- .tif '' *.tif
(observe que esse seria renomeado blah.tiffany.tif
para blahfany.tif
)
Para uma não renomeação, você pode fazer:
$ for i in *.tif; do mv -i $i `basename $i .tif`; done
(-i para advertir contra a substituição de um arquivo)
for i in ./*.tif; do mv -i "$i" "${i%.tif}"; done
rename -- .oldext .newext *.oldext
Isso substitui a extensão antiga pela nova. Para simplesmente remover a extensão, você pode transmitir explicitamente uma string vazia como argumento.
rename -- .gz.tmp '' *.gz.tmp
Com o comando acima, todos os arquivos com .gz.tmp
extensão na pasta atual serão renomeados para filename.gz
.
Consulte o artigo: Linux: remova extensões de arquivos para vários arquivos para obter detalhes.
rename
seja incompatível com (e muito mais limitada que) o rename
comando tradicional do perl
.
.oldext
dentro do nome do arquivo, não necessariamente a extensão ( foo.oldextasy.oldext
seria renomeada para footasy.oldext
).
podemos fazer isso recursivo
for i in *.gz; do mv -i $i `basename $i .gz`; done