[Resolvido] Adicionar extensão [RESOLVIDO]

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

Frozen
frozenmantis

(usa openSUSE)

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!!!


  


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

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

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]

Marcos Paulo Ferreira
daemonio

(usa Slackware)

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]

Frozen
frozenmantis

(usa openSUSE)

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]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

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]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

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:

Sandro Marcell
SMarcell

(usa Slackware)

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

Frozen
frozenmantis

(usa openSUSE)

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...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts