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?
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?
Respostas:
perl's rename(como normalmente encontrado no Debian, onde também é chamado prename), ou este derivado ( 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)
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.tmpextensã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.
renameseja incompatível com (e muito mais limitada que) o renamecomando tradicional do perl.
.oldextdentro do nome do arquivo, não necessariamente a extensão ( foo.oldextasy.oldextseria renomeada para footasy.oldext).
podemos fazer isso recursivo
for i in *.gz; do mv -i $i `basename $i .gz`; done