Questão Adicione a extensão jpg a muitos arquivos


Eu tenho uma pasta com um monte de pastas com um monte de arquivos e talvez mais pastas com mais arquivos, onde alguns arquivos perderam sua extensão. Eu acredito que eles são todos jpgs, mas eu posso estar errado. Alguma idéia de como adicionar novamente as extensões a todos esses arquivos sem fazer isso um por um?

Eu posso fazer isso no Windows 7 ou no Ubuntu 8.10.


4


origem


Esta pergunta provavelmente terá uma resposta para você, pois é um pouco semelhante: superuser.com/questions/16007/… - Gnoupi
Você verificou se não desligou a exibição da extensão nessas pastas antes de embarcar na renomeação? Pergunta básica eu sei, mas você nunca sabe. - ChrisF
ChrisF, sim, eu fiz. Obrigado. - pupeno


Respostas:


Você pode fazê-lo através de cmd no windows.

renomear * * .jpg


Editar:
Para aplicar a pastas aninhadas, você pode usar;

para / r% x em (*) renomeie "% x" * .jpg


7



Isso funcionará recursivamente em todas as pastas? - pupeno
O prompt de comando ainda tem seus usos :) Sim DOS! - Stewbob
Não será - você precisará usar o comando 'for' como demonstrado aqui: stackoverflow.com/questions/210413/… - Jeffrey
Obrigado Jeffrey; Eu não encontrei "para" antes! Isso é muito bacana. Eu adicionei isso ao corpo da solução. - RJFalconer
+1 para uma boa resposta que não envolva a instalação de outros sistemas operacionais ou um monte de outros programas. - Joey


Eu fiz assim

find . -type f -iregex ".*[^\(\.jpg\)]" -exec mv "{}" "{}.jpg" ";"

3



Agradável. FWIW, um método mais simples que -iregex é usar o negativo de um nome partida: encontrar . tipo f \! -name 'jpg (...) Além disso, tento sempre usar um caminho absoluto (* / bin / mv


Se usar o powershell é uma opção, então esta postagem de SO deve ser exatamente o que você quer.


2





No linux

ls | while read file ; do mv $file $file.jpg; done

No Windows

Eu gosto de usar Renomear4u que é um utilitário freeware.


1



Basta ter cuidado para não acrescentar uma extensão .jpg a IMAGE001.jpg - Jeffrey
A versão do Linux não adicionaria a extensão a todos os arquivos? Nem todos os arquivos estão faltando a extensão. - pupeno
@J Pablo, .jpg.jpg ainda abre como um jpg;) No windows eu faria: ren * * .jpg mas você poderia hackear algo junto com um arquivo de lote para fazer isso apenas se algo não tivesse uma extensão - Eu sou muito preguiçoso, eu mesmo. Se funciona, funciona né? - Phoshi


Rename de Extensão faz o trabalho.


0





Para Linux (ou MSWindows com CygWin)

Se você deseja adicionar apenas um sufixo aos arquivos que são, na verdade, JPEGs, tente o seguinte:

$ find . -type f  ! -name '*.jpg'  -print | while read f
> do case "$(file "$f")" in
>    *JPEG*) mv -iv "$f" "$f.jpg" ;;
>    esac
> done

Qual será:

  1. Imprimir caminhos que são arquivos sem um * jpg sufixo (encontrar)
  2. Verifique o conteúdo desses arquivos (arquivo $ f)
  3. Para arquivos JPEG, renomeie-os com um _jpg sufixo.

0