Checking jpeg files for differences and duplicates

Not sure if this is the right forum but am seeking help sorting out two directories, with subdirectories which may or may not have the same jpg pictures.

The background is that I have two sets of images which may in fact be the same but have been downloaded differently from camera or copied from camera and/or memory card.
Certainly some of the pictures seem to be the same but I have no idea which is the “best” in terms of resolution and completeness of original camera metadata.
To start I used diff but that only told me that many of the files were different. This is my command and a fraction of the resulting output:-

alastair@ibmserv2:~/Working/Difference_Checking_Directories> diff --brief --recursive --new-file dir1_2009/ dir2_IBR_2009/
Files dir1_2009/2009_01_28/IMG_0814.JPG and dir2_IBR_2009/2009_01_28/IMG_0814.JPG differ 
Files dir1_2009/2009_01_28/IMG_0815.JPG and dir2_IBR_2009/2009_01_28/IMG_0815.JPG differ 
Files dir1_2009/2009_01_28/.@__thumb/s100IMG_0814.JPG and dir2_IBR_2009/2009_01_28/.@__thumb/s100IMG_0814.JPG differ 
Files dir1_2009/2009_01_28/.@__thumb/s100IMG_0815.JPG and dir2_IBR_2009/2009_01_28/.@__thumb/s100IMG_0815.JPG differ 
Files dir1_2009/2009_01_28/.@__thumb/s800IMG_0814.JPG and dir2_IBR_2009/2009_01_28/.@__thumb/s800IMG_0814.JPG differ 
Files dir1_2009/2009_01_28/.@__thumb/s800IMG_0815.JPG and dir2_IBR_2009/2009_01_28/.@__thumb/s800IMG_0815.JPG differ 
Files dir1_2009/2009_01_28/ and dir2_IBR_2009/2009_01_28/ differ 
Files dir1_2009/2009_02_17/IMG_0816.JPG and dir2_IBR_2009/2009_02_17/IMG_0816.JPG differ 
Files dir1_2009/2009_02_17/IMG_0817.JPG and dir2_IBR_2009/2009_02_17/IMG_0817.JPG differ 
Files dir1_2009/2009_02_17/IMG_0818.JPG and dir2_IBR_2009/2009_02_17/IMG_0818.JPG differ

Removing the code --brief only tells me the files are binaries. I do not know why the lines are sometime repeated but I suspect my poor command.
I need to drill down to compare the jpg images but am well out of my depth here. Any suggestions welcome!


Look at fdupes and jdupes (In my testing repo):

Hi Malcolm,
First many thanks for your kind offer or a rescue application. I guess you may have run into a similar problem to my own but whatever, very many thanks.

I downloaded your rpm file for TW and ran the yast installer but had a problem so I guess I messed up somewhere along the line.

Here is the popup error message:-

Error: INVALID:jdupes-1.19.0-1.2.x86_64 (file-0ebae2ed): Signature verification failed [4-Signatures public key is not available]
     Header V3 RSA/SHA256 Signature, key ID 97090d5e: NOKEY
     Header SHA256 digest: OK
     Header SHA1 digest: OK
     Payload SHA256 digest: OK
     V3 RSA/SHA256 Signature, key ID 97090d5e: NOKEY
     MD5 digest: OK

Is it that my signatures are not up to date or did I miss a step?

No, you get that if you haven’t imported the key from my repo, can ignore or add my repo temporarily to import the key.

Mmm. Well clearly I can’t ignore so thought I would add your repo with Yast.
I am back with the dunces as I cannot add your site to my repos. Please can you give me a clue?

With zypper?

zypper ar -f -g -n "repo-ML:Testing" repo-ML:Testing
zypper ref
{accept the key always}
zypper in
{now disable!}
zypper mr -d -F -p 101 repo-ML:Testing

And my next try gives:-

alastair@localhost:~> sudo zypper ar -f -g -n "repo-ML:Testing"
olmlewis:/TESTING/openSUSE_Tumbleweed/ repo-ML:Testing 
[sudo] password for root:  
Adding repository 'repo-ML:Testing' ...........................................................................[done] 
Repository 'repo-ML:Testing' successfully added 

URI         : 
Enabled     : Yes 
GPG Check   : Yes 
Autorefresh : Yes 
Priority    : 99 (default priority) 

Repository priorities are without effect. All enabled repositories share the same priority. 
alastair@localhost:~> sudo zyppr ref 
sudo: zyppr: command not found 
alastair@localhost:~> sudo zypper ref 
Repository 'Main Repository (NON-OSS)' is up to date.                                                                 
Repository 'Main Repository (OSS)' is up to date.                                                                     
Repository 'Main Update Repository' is up to date.                                                                    
Repository 'libdvdcss' is up to date.                                                                                 
Repository 'openSUSE-20200502-0' is up to date.                                                                       
Repository 'packman' is up to date.                                                                                   
Retrieving repository 'repo-ML:Testing' metadata -----------------------------------------------------------------\] 

**New repository or package signing key received:** 

  Repository:       repo-ML:Testing 
  Key Name:         home:malcolmlewis:TESTING OBS Project <> 
  Key Fingerprint:  CC688DF7 940429AE AA9256E3 6EFFB2D4 97090D5E 
  Key Created:      Thu 25 Apr 2019 17:14:43 BST 
  Key Expires:      Sat 03 Jul 2021 17:14:43 BST 
  Rpm Name:         gpg-pubkey-97090d5e-5cc1dcf3 

Do you want to reject the key, trust temporarily, or trust always? **[r/t/a/?] (r): **a 
Retrieving repository 'repo-ML:Testing' metadata .............................................................[error] 
Repository 'repo-ML:Testing' is invalid. 
[repo-ML:Testing|] Valid m
etadata not found at specified URL                                                                                    
 - Download (curl) error for '
Error code:  Unsupported protocol                                                                                     
Error message: Redirect to protocol "http" not supported or disabled in libcurl                                       
 - Can't provide ./repodata/22bc1b621c1bd1c5058f2fbdb2b81e512e340bc5fc7b7bc88e0347454edaf3f4-primary.xml.gz           
Please check if the URIs defined for this repository are pointing to a valid repository. 
Skipping repository 'repo-ML:Testing' because of the above error. 
Some of the repositories have not been refreshed because of an error. 

Not me guv!

Change it to http rather than https

All OK now so will try your suggested app when I have time. I see that others on digikam list have similar problems!
Will report back and many thanks again.