Remove imagens duplicadas

2

Eu tenho uma imagem original img.jpg.

Como posso remover imagens duplicadas que são img.jpg1, img.jpg2, img.jpg3. Eu quero manter a imagem que tem extensão .jpg.

Obrigado

    
por Neo 18.11.2015 / 06:26

3 respostas

2

Combine o comando find com -regex e -exec flags. Neste exemplo em particular, -exec simplesmente pega todas as imagens de dupe e as move para a lixeira, então você ainda pode recuperar qualquer uma delas se assim escolher. Mais tarde, você pode usar o comando rm ou limpar a lixeira através da GUI

testerdir:$ ls
img.jpg  img.jpg1  img.jpg2  img.jpg3

testerdir:$ find  . -regex ".*\.jpg[1-9]+" -print -exec mv -t $HOME/.local/share/Trash/ {} +                                 
./img.jpg1
./img.jpg3
./img.jpg2

testerdir:$ ls $HOME/.local/share/Trash                                                                                   
expunged/  files/  img.jpg1  img.jpg2  img.jpg3  info/

testerdir:$ ls
img.jpg
    
por Sergiy Kolodyazhnyy 18.11.2015 / 06:46
5

Solução GUI

  1. No nautilus, abra o diálogo de seleção usando ctrl + S
  2. Digite *.jpg para selecionar todas as imagens com a extensão .jpg

  1. Inverta a seleção usando ctrl + deslocamento + i para selecionar os que não possuem a extensão .jpg (que é o que você deseja).

  1. Clique com o botão direito do mouse e escolha Move to trash ou pressione a tecla delete .
    A partir daqui, você também pode fazer qualquer outra coisa que desejar: comprimir, cortar, etc.
por Parto 18.11.2015 / 06:58
2

Usando bash , não recursivamente:

shopt -s extglob nullglob
rm img.jpg+(?)

Se você tiver apenas dígitos no final:

rm img.jpg+([0-9])

Recursivamente:

shopt -s globstar extglob nullglob
rm **/img.jpg+(?)

No caso de apenas dígitos no final:

rm **/img.jpg+([0-9])

Aqui usamos algumas opções de shell:

  • extglob nos permitirá corresponder a padrões de globos estendidos, por exemplo +(?) corresponderá a uma ou mais ocorrências de qualquer caractere. Isso deve ser ativado em um shell interativo por padrão.

  • nullglob resultará em uma string nula se nenhuma correspondência for encontrada

  • globstar nos permitirá pesquisar recursivamente usando **

por heemayl 18.11.2015 / 07:44