Pular para o conteúdo

[Resolvido] Adicionar extensão [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 23/03/2011 - 17:36h

Pessoal,

peguei uma pasta com vários wallpapers no formato *.png, porém os arquivos estão sem a extensão e não são reconhecidos pelo gerenciador de papeis de parede. Será que alguém daria uma ajuda com um shell script para adicionar a extensão em todos arquivos da pasta?!?

Desde já agradeço!!!

Responder tópico

2. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Melhor resposta

3. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 23/03/2011 - 17:50h

Hum... imaginei de uma forma legal:

ls /path/wallpapers | tac > lista.txt; for i in `cat lista.txt`; do; mv $i $i.png; done

Veja se dá certo.

Obs.: faça o backup da pasta antes d fazer isso (o seguro morreu d velho...).

4. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 23/03/2011 - 17:54h

Opa! Fala frozen!

Acho que isso deve funcionar:

#!/bin/bash

for foto in *;
do
mv $foto ${foto}.png
done

Salve o script como topng e dê permissao de execução. Depois vá a pasta onde tem os wallpapers
e execute o script:

$ ./topng

Ele irá adicionar a extensão .png para todos os arquivos do diretório (até no proprio script :s)

Antes de executar tenha certeza que na pasta só tenha arquivos png sem extensão.

Acho que é isso.
t+

--------------- editando

Opa, nem vi a solução do renato!! Recomendo fazer o backup do diretorio tambem. hehe

5. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 23/03/2011 - 18:41h

Olá pessoal,

obrigado pela atenção de vcs.

Renato, o código que vc postou me retornou o seguinte erro: bash: erro de sintaxe próximo do `token' não esperado `;'

Daemonio, seu código retornou um erro: mv: target `[nome da imagem].png' is not a directory para cada arquivo de imagem.
Acredito que seja pq os nomes dos arquivos possuem espaços. O arquivo "topng.sh", que estava na mesma pasta das imagens ficou assim: "topng.sh.png".

Há alguma formar de contornar esse problema de espaço no nome???

Valew mesmo!!!

6. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 23/03/2011 - 23:44h

Ok. Tente dessa forma então:

PATH=/caminho/wallpapers
ls $PATH | tac > /tmp/lista.txt
for i in `cat /tmp/lista.txt`
do
mv $PATH/$i $PATH/$i.png
done

7. Re: [Resolvido] Adicionar extensão [RESOLVIDO]

Enviado em 24/03/2011 - 00:04h

Ola!

Os dois script enviados darão erros pois:
1) Nao trata o caso de ser um diretorio (falha o mv)
2) Erro de sintaxe no comando.

Segue um script que deve resolver seu problema:

#!/bin/bash

for i in `find . -maxdepth 1 -type f`; do
mv $i ${i}.png
done

Espero ter ajudado!

8. Outra forma:

Enviado em 24/03/2011 - 10:56h

Use o comando 'rename' (ou 'prename' dependendo da distro!). Para isso execute-o da seguinte forma:

rename 's/(.+)/$1\.png/' <diretório>/*

Onde:

<diretório> = É o diretório que contem os arquivos de imagem.

Ex.:

rename 's/(.+)/$1\.png/' /home/user/imagens/*

---

E para renomear somente arquivos sem extensão:

find <diretório> -type f \! -name "*.*" -print | rename 's/(.+)/$1\.png/'

9. [Resolvido] Adiconar Extensão

Enviado em 24/03/2011 - 13:15h

Opa!!!

Finalmente.....

Encontrei a solução em um dos links enviados pelo Volcom.

Só executei o seguinte comando de dentro do diretório com as imagens:

for f in *; do mv ./"$f" "${f%}.png"; done

Assim, foi adicionada a extensão .png em todos os arquivos do diretório.

Valew mesmo a ajuda de todos!!!

Um grande abraço...

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder