Bunun nasıl yapılacağı, resim dosyalarınızın bitsel olarak mı yoksa sadece görsel olarak aynı mı olduğuna (örneğin, farklı yorumlara sahip olmaları veya yeniden sıkıştırılmış olmaları, kırpılmaları ...) olabilir.
Dosyalar aynıysa ve bunları hem kaynakta hem de arşivinizde yeniden adlandırabilirsiniz, her zaman aynı ada sahip olacak şekilde yeniden adlandırmak kolaydır. Eski adı sembolik bir bağlantı olarak tutabilirsiniz. Test edilmemiş:
for orig in *.jpg; do
canon=$(<"$orig" md5sum | sed 's/ .*//').jpg
mv -i "$orig" "$canon"
ln -s "$canon" "$orig"
done
Bu, arşivinizin tek bir dizin olduğunu varsayar. Alt dizinler varsa , komuta doğru miktarda eklemek *.jpg
için **/*.jpg
(bash 4 veya zsh gerektirir) değiştirmeniz gerekir .../
ln
Bundan sonra rsync sadece yeni fotoğrafların içeriğini ve ismini ve mevcut fotoğraflar için yeni isimleri kopyalayacaktır.
Dosyaları yalnızca arşivinizde yeniden adlandırabilirseniz, sembolik bağların akıllıca kullanımı ve muhtemelen de bir şeyler düzenleyebilirsiniz rsync --copy-unsafe-links
.
Dosyalar sadece görsel olarak birbirine benziyorsa, daha karmaşıktır ve tam otomatik bir cevap olamaz (kırpılmış bir sürüm ile düşük kaliteli bir sürüm arasında, bir insan seçim yapmak zorundadır). Görsel olarak benzer görüntüleri karşılaştırmak için bazı araçlar, örneğin gqview (interaktif) veya findupagedupes (komut satırı) gibi yardımcı olabilir.
İşletim sisteminizi belirtmediğinizden, benim için çalışan önerilerde bulunduğumu unutmayın. OSX ve Cygwin dahil, unix benzeri herhangi bir sistem üzerinde çalışacaklar. Sembolik bağlantı fikri aynı zamanda yerel olarak Windows XP ve daha yeni sürümlerde de çalışacaktır (belki daha erken) ancak ek araçlar kurmayı gerektirir.