sala@home:~$

rdfind

Rengetegen backupolnak úgy, hogy időnként kimásolják a fontos alkönyvtárak tartalmát egy külső drive-ra egy új alkönyvtárba. A módszer nagy hátránya, hogy ha egy fájl nem változott az előző mentés óta, akkor az kétszer is ott lesz a külső drive-on, feleslegesen foglalva a helyet.

Az ilyen fájlokat persze megtalálhatjuk pl. fdupes segítségével, de ezután kézzel kell törölnünk ezeket, ráadásul akkor az egyik mentésünk hiányos lesz. Hasznosabb ilyen esetekben az rdfind.

Nézzünk két alkönyvárat:

$ ls -l *
1:
total 15980
-rw-rw-rw- 1 user live 3223592 Oct 9 1998 track11.mp3
-rw-rw-rw- 1 user live 5819536 Oct 9 1998 track13.mp3
-rw-rw-rw- 1 user live 4800970 Oct 9 1998 track15.mp3
-rw-rw-rw- 1 user live 2507210 Oct 9 1998 track1.mp3

2:
total 23036
-rw-rw-rw- 1 user live 5819536 Oct 9 1998 song13.mp3
-rw-rw-rw- 1 user live 4800970 Oct 9 1998 song15.mp3
-rw-rw-rw- 1 user live 4693238 Oct 9 1998 song3.mp3
-rw-rw-rw- 1 user live 5647437 Oct 9 1998 song4.mp3
-rw-rw-rw- 1 user live 1272140 Oct 9 1998 song5.mp3
-rw-rw-rw- 1 user live 1343611 Oct 9 1998 song7.mp3

 Bár a fájlnevek eltérnek, a fájlhosszból látszik, hogy pl. track15.mp3 és song15.mp3 ugyanazok a fájlok.

Az alkönyvárak helyfoglalása:

$ du -bs *
16355404 1
23581028 2

Kerestessük meg az azonos fájlokat rdfinddal, és cseréljük le ezeket hard linkre:

$ rdfind -makehardlinks true 1 2 
Now scanning "1", found 4 files.
Now scanning "2", found 6 files.
Now have 10 files in total.
Removed 0 files due to nonunique device and inode.
Now removing files with zero size from list...removed 0 files
Total size is 39928240 bytes or 38 MiB
Now sorting on size:removed 6 files due to unique sizes from list.4 files left.
Now eliminating candidates based on first bytes:removed 0 files from list.4 files left.
Now eliminating candidates based on last bytes:removed 0 files from list.4 files left.
Now eliminating candidates based on md5 checksum:removed 0 files from list.4 files left.
It seems like you have 4 files that are not unique
Totally, 10 MiB can be reduced.
Now making results file results.txt
Now making hard links.
Making 2 links.

A listázásál sok változást nem látunk, de a linkszámlálóból látszik, hogy már hard linkjeink vannak:

1:
total 15980
-rw-rw-rw- 1 user live 3223592 Oct 9 1998 track11.mp3
-rw-rw-rw- 2 user live 5819536 Oct 9 1998 track13.mp3
-rw-rw-rw- 2 user live 4800970 Oct 9 1998 track15.mp3
-rw-rw-rw- 1 user live 2507210 Oct 9 1998 track1.mp3

2:
total 23036
-rw-rw-rw- 2 user live 5819536 Oct 9 1998 song13.mp3
-rw-rw-rw- 2 user live 4800970 Oct 9 1998 song15.mp3
-rw-rw-rw- 1 user live 4693238 Oct 9 1998 song3.mp3
-rw-rw-rw- 1 user live 5647437 Oct 9 1998 song4.mp3
-rw-rw-rw- 1 user live 1272140 Oct 9 1998 song5.mp3
-rw-rw-rw- 1 user live 1343611 Oct 9 1998 song7.mp3

Ha külön-külön nézzük a helyfoglalást, akkor nincs változás:

$ du -bs 1
16355404 1

$ du -bs 2
23581028 2

de ha egyben, akkor látszik, hogy sok helyet megspóroltunk:

$ du -bs *
16355404 1
12960522 2

 Azt azért érdemes tudni, hogy sok fájl tartalmazó alkönyvtáraknál rdfind elég lassú.