Jeśli masz dane z dużą ilością duplikatów to polecam sprawdzić narzędzie rdfind. Narzędzie zastępuje duplikaty symlinkami lub usuwa je.

Jeśli potrzebujesz go przez duplikaty w backupach to polecam rozwiązać problem fundamentalnie - BorgBackup. BorgBackup sam zajmuje się deduplikacją, kompresją i szyfrowaniem backupów.

Mój workflow

  1. Przenisienie potencjalnie zduplikowane plików do jednego miejsca. (rozpakuj wszystkie archiwa!!!).
  2. Zrobienie updatedb, żeby mieć szybkie indeksowanie z locate.
  3. Przejrzenie plików które napewno można usunąć (oszczędza czas, liczenie checksumów troche trwa)

Uwaga

Poniższe sugestie dotyczące katalogów/plików są subiektywne i służą tylko jako wskazówka. W niektórych przypadkach mogą się w nich znajdować bardzo ważne dane. upewnij się, że wiesz, co usuwasz.

.cache
.cargo
go
usr
bin
sbin
boot
lib
lib64
tmp
nix
.next

/var/cache/distfiles
/var/cache/pacman
/var/db/repos
SecLists

node_modules
*initrd*
*linux*
*vmlinuz*

restore
*~
to_remove

*.iso
*.img
*.img.zst

cache2
Cache
.npm or .npm/_cacache
*/_build
.venv
venv

Deduplikacja z rdfind

Po usunięciu oczywistych śmieci:

rdfind -checksum md5 -deterministic false -deleteduplicates true *

md5 jako algorytm i wyłączenie deterministyczności niesie pewne ryzyko, dostostuj w zależności od twoich danych. Komenda usuwa duplikaty zamiast zastępowania ich linkami by uniknąć nieporzebnego narzutu, np. związanego z inode’ami.