Renomeie arquivos e extensões em um comando no Mac OS X

0

Existe uma maneira de renomear vários arquivos em um comando. No Windows, estou ciente do comando

ren *.* *.jpg

Existe um comando similar no Mac OS X que eu poderia executar, em vez de pressionar Enter em cada arquivo individual e fazer a renomeação.

    
por Rajeshwaran S P 28.12.2009 / 22:25

3 respostas

1

Com sistemas semelhantes a unix, é mais fácil usar o find

find ./  

(tente primeiro para ter certeza de que sua lista de arquivos se parece com o que você esperava)

find ./ -exec mv ${} ${}.jpg \; 

Isso adicionará .jpg ao final de cada arquivo encontrado. O regex para alterar a extensão final, em vez de apenas acrescentar, é deixado como um exercício para o leitor.

    
por 28.12.2009 / 22:28
3

Embora o uso de find e for loops seja eficiente, o Perl normalmente vem com /usr/bin/rename (no Linux pelo menos), mas não tenho certeza se você o possui no MacOSX (pelo menos não no meu antigo 10.3).

Se você não tem, você pode obter este script de o CPAN . E é assim que é usado:

$ ls
   tata.jpg  titi.jpg  toto.jpg  truc  tutu
$ rename -v 's/\.jpg$/.JPG/' *.jpg
   tata.jpg renamed as tata.JPG
   titi.jpg renamed as titi.JPG
   toto.jpg renamed as toto.JPG
$ ls
   tata.JPG  titi.JPG  toto.JPG  truc  tutu
    
por 28.12.2009 / 22:50
2

Isso funcionará (e levará a muito mais flexibilidade):

shopt -s extglob
for file in *.*; do mv ${file} ${file/%.*([^.])/.jpg}; done

Existem também ferramentas de linha de comando Unix não padrão que podem executar o trabalho de forma mais sucinta.

    
por 28.12.2009 / 22:31