procurar fotos duplicadas

procurar fotos duplicadas

Tenho fotos, na pasta A, elas também existem, nas pastas B e C. Elas têm os mesmos nomes de arquivos. Como procurá-los e excluí-los da pasta A? Um script perl ou algo assim seria ideal, pois não gosto de baixar um software para esta tarefa.

Responder1

Experimente este comando:

find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;

Como usar?

Passo 1:Crie um diretório temporário para mover arquivos duplicados para ele:

ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"

Passo 2:Defina destdirpara o diretório FolderA que queremos excluir fotos duplicadas de lá.

destdir=/path/to/FolderA

etapa 3cd para seu primeiro diretório de origem (FolderB) e execute o comando

cd /path/to/FolderB

find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;

Passo 4:Agora vá para o próximo diretório de origem (FolderC) e execute novamente o comando

cd /path/to/FolderC

find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;

OK. Agora, se você testar o comando e ver o resultado, remova o echocomando para mover as fotos duplicadas para /tmp/ToDeleteo diretório.

Veja o teste abaixo:

$ ls ~/FolderA    
  1.jpg  2.jpg  6.jpg  7.jpg  8.jpg

$ ls ~/FolderB    
  3.jpg  4.jpg  5.jpg  7.jpg  8.jpg  9.jpg

$ ls ~/FolderC
  6.jpg  7.jpg  8.jpg  9.jpg

$ ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"
$ ls /tmp/ToDelete/
$ destdir=~/FolderA

$ cd ~/FolderB
/FolderB$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
  ‘/home/Fischer/FolderA/./8.jpg’ -> ‘/tmp/ToDelete/8.jpg’
  removed ‘/home/Fischer/FolderA/./8.jpg’
  ‘/home/Fischer/FolderA/./7.jpg’ -> ‘/tmp/ToDelete/7.jpg’
  removed ‘/home/Fischer/FolderA/./7.jpg’

/FolderB$ cd ~/FolderC
/FolderC$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
  ‘/home/Fischer/FolderA/./6.jpg’ -> ‘/tmp/ToDelete/6.jpg’
  removed ‘/home/Fischer/FolderA/./6.jpg’

/FolderC$ ls /tmp/ToDelete/
  6.jpg  7.jpg  8.jpg

/FolderC$ ls -l ~/FolderA
  1.jpg  2.jpg

/FolderC$ C00L ;)

E como funciona?

Quando você muda para sua PastaB ou PastaC e executacomando encontrar, então você está procurando por qualquer arquivo nele ( .consulte o diretório atual) e depois comcomando cmp(usado para comparar dois arquivos byte por byte) você compara cada arquivo ( {}) na Pasta B / Pasta C com os arquivos na destdir(Pasta A ( $destdir/{})) se eles forem iguais, movemos esse arquivo (da Pasta A para o diretório temporário em /tmp/ToDelete) com o próximocomando mv -exec mv "$destdir/{}" "$ToDelete"/ \;.

Responder2

O programaencontrar imagemdupesdeve fazer o que você solicita:

Encontra imagens visualmente semelhantes ou duplicadas

O programa é um programa Perl simples e pode ser iniciado a partir da linha de comando - mas também está disponível como um pacote de software.

Responder3

você poderia usar o programa fslint

ele procura duplicatas (entre outras coisas)

fslint pode ser baixado no centro de software. fslint possui uma interface de usuário quando você abre o programa, a primeira aba é sobre como encontrar duplicatas. você pode especificar a pasta/pastas.

Mais Informações :manual do usuário fslint

Responder4

Existem muitoslocalizador de fotos duplicadasutilitários disponíveis online. Alguns são melhores que outros, alguns são mais rápidos, alguns são fáceis de usar, muitos são gratuitos e alguns precisam pagar para desbloquear todas as funcionalidades.

Faça uma pesquisa no Google com as melhores frases de localização de fotos duplicadas para descobrir o que está disponível e encontrar aquela que atende às suas necessidades.

informação relacionada