Sortering af Billeder

Vi har alt for mange billeder, specielt fordi vi har flere kopier på flere computere. I gamle dage havde jeg et avanceret shell-script baseret på sha1sum og jhead til at installere og rydde op i billed-junglen, men det er som så meget andet blevet udsat for bit-rot.  Det der er sket er, at jeg har fået nye billed-filer som ikke har de felter jeg lagde til grund da jeg skrev scriptet for snart mange år siden.

Nu skulle jeg så til det igen og kiggede lige lidt rundt og fandt at jeg med to nye tools fdupes og exiftool kunne simplificere det ganske gevaldigt.  Først skal programmerne lige installere, det er ligetil under en Ubuntu/Debian

Men da jeg jo ikke kan huske parametrene til programmerne har jeg skrevet et lille shellscript som klarer detaljerne:

Script virker således:

  • Slet dubletter af filer der allerede findes i src (eller dst)
  • Flyt filer der har en DateTimeOrignal over i det nye filnavn baseret på indholdet af DateTimeOrignal feltet
  • Flyt filer der har en CreateDate over i det nye filnavn baseret på indholdet af CreateDate feltet
  • Resten flyttes over i et nyt filnavn baseret på hvornår filen sidst er ændret.
  • Der burde herefter ikke være flere billeder/videoer tilabe i src

Måden jeg bruger det på, er at jeg har to dirs

  • Pictures/Sorted
  • Pictures/Unsorted

Når som helst jeg har nogle billeder jeg vil have lagt in kopierer jeg hele baduljen in i Pictures/Unsorted, hvorefter jeg kører

På en god dag er Unsorted nu tom, ellers må man jo igang per håndkraft, og hvis det sker tit at den ikke klarer det så må man jo pille lidt i scriptet, så det klarer den nye type billedfiler der har sneget sig ind på din computer

Resultatet af dette er:

Som det ses er der to problemer 1970 og 2036, dem kunne jeg jo lige flytte rundt per håndkraft.

Problemet her er et Canon sx280 camera som har CreateDate forkert derfor har jeg rettet scriptet til så der prøves først med DateTimeOriginal.

Bare til sammenligning så er det nye script på godt 50 linier (der faktisk kun 4 relevante kommandoer).

Det gamle system var på knap 300 linier og det uden usage()

 

 

Print Friendly, PDF & Email
This entry was posted in Linux. Bookmark the permalink.

Leave a Reply