Weboldal keresés

fdupes – Parancssori eszköz az ismétlődő fájlok keresésére és törlésére Linux alatt


A legtöbb számítógép-felhasználónál gyakori követelmény az ismétlődő fájlok megtalálása és cseréje. Az ismétlődő fájlok keresése és eltávolítása fárasztó munka, amely időt és türelmet igényel. Az 'fdupes' segédprogramnak köszönhetően a duplikált fájlok megtalálása nagyon egyszerű lehet, ha a gépe GNU/Linux rendszerű.

Mi az az fdupes?

Az Fdupes egy Linux-segédprogram, amelyet Adrian Lopez írt C programozási nyelven, amelyet MIT-licenc alatt adtak ki. Az alkalmazás képes duplikált fájlokat találni az adott könyvtár- és alkönyvtárkészletben. Az Fdupes úgy ismeri fel a duplikációkat, hogy összehasonlítja a fájlok MD5 aláírását, majd ezt követi a byte-byte összehasonlítás. Az Fdupes segítségével számos lehetőség adható át a fájlok listázásához, törléséhez és a duplikátumokhoz mutató merev hivatkozásokkal való helyettesítéséhez.

Az összehasonlítás a következő sorrendben kezdődik:

méret-összehasonlítás > Részleges MD5-aláírás-összehasonlítás > Teljes MD5-aláírás-összehasonlítás > Bájt-byte-összehasonlítás.

Telepítse az fdupes-t Linuxra

Az fdupes legújabb verziójának (fdupes 1.51-es verziójának) telepítése olyan egyszerű, mint a következő parancs futtatása Debian alapú rendszereken, például Ubuntu és Linux Mint.

sudo apt-get install fdupes

CentOS/RHEL és Fedora alapú rendszereken az fdupes csomag telepítéséhez be kell kapcsolnia az epel repository-t.

yum install fdupes
dnf install fdupes    [On Fedora 22 onwards]

Megjegyzés: Az alapértelmezett yum csomagkezelőt a dnf váltja fel a Fedora 22 verzióból. tovább…

Hogyan kell használni az fdupes parancsot?

1. Demonstrációs célból hozzunk létre néhány duplikált fájlt egy könyvtárban (mondjuk a tecmint) egyszerűen a következőképpen:

mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done

A fenti parancs futtatása után ellenőrizze, hogy a duplikált fájlok létrejöttek-e, vagy nem az ls paranccsal.

$ ls -l

total 60
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint10.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint11.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint12.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint13.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint14.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint15.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint1.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint2.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint3.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint4.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint5.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint6.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint7.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint8.txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

A fenti szkript 15 fájlt hoz létre, nevezetesen tecmint1.txt, tecmint2.txt…tecmint15.txt, és minden fájl ugyanazt az adatot tartalmazza, azaz

"I Love Tecmint. Tecmint is a very nice community of Linux Users."

2. Most keressen ismétlődő fájlokat a tecmint mappában.

$ fdupes /home/$USER/Desktop/tecmint 

/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

3. A -r kapcsoló használatával keressen rekurzív módon ismétlődéseket minden könyvtárban, beleértve az alkönyvtárakat is.

Az összes fájlban és mappában rekurzívan keres, a fájlok és mappák számától függően a másolatok vizsgálata némi időt vesz igénybe. Ezalatt a terminál teljes előrehaladását fogja bemutatni, valami ehhez hasonló.

$ fdupes -r /home

Progress [37780/54747] 69%

4. A -S kapcsolóval megtekintheti a mappában talált ismétlődések méretét.

$ fdupes -S /home/$USER/Desktop/tecmint

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

5. A -S és a -r kapcsolók használatával egyidejűleg megtekintheti a duplikált fájlok méretét minden egyes könyvtárban és alkönyvtárban. , mint:

$ fdupes -Sr /home/avi/Desktop/

65 bytes each:                          
/home/tecmint/Desktop/tecmint/tecmint13.txt
/home/tecmint/Desktop/tecmint/tecmint8.txt
/home/tecmint/Desktop/tecmint/tecmint11.txt
/home/tecmint/Desktop/tecmint/tecmint3.txt
/home/tecmint/Desktop/tecmint/tecmint4.txt
/home/tecmint/Desktop/tecmint/tecmint6.txt
/home/tecmint/Desktop/tecmint/tecmint7.txt
/home/tecmint/Desktop/tecmint/tecmint9.txt
/home/tecmint/Desktop/tecmint/tecmint10.txt
/home/tecmint/Desktop/tecmint/tecmint2.txt
/home/tecmint/Desktop/tecmint/tecmint5.txt
/home/tecmint/Desktop/tecmint/tecmint14.txt
/home/tecmint/Desktop/tecmint/tecmint1.txt
/home/tecmint/Desktop/tecmint/tecmint15.txt
/home/tecmint/Desktop/tecmint/tecmint12.txt

107 bytes each:
/home/tecmint/Desktop/resume_files/r-csc.html
/home/tecmint/Desktop/resume_files/fc.html

6. Az egy mappában vagy az összes mappában való rekurzív keresésen kívül választhat két vagy három mappát is. Arról nem is beszélve, hogy szükség esetén használhatja a -S és/vagy a -r opciót.

fdupes /home/avi/Desktop/ /home/avi/Templates/

7. Az ismétlődő fájlok törléséhez a másolatok megőrzése mellett használhatja a „-d” lehetőséget. Különös óvatossággal kell eljárni ennek az opciónak a használatakor, különben elveszítheti a szükséges fájlokat/adatokat, és ne feledje, hogy a folyamat helyreállíthatatlan.

$ fdupes -d /home/$USER/Desktop/tecmint

[1] /home/tecmint/Desktop/tecmint/tecmint13.txt
[2] /home/tecmint/Desktop/tecmint/tecmint8.txt
[3] /home/tecmint/Desktop/tecmint/tecmint11.txt
[4] /home/tecmint/Desktop/tecmint/tecmint3.txt
[5] /home/tecmint/Desktop/tecmint/tecmint4.txt
[6] /home/tecmint/Desktop/tecmint/tecmint6.txt
[7] /home/tecmint/Desktop/tecmint/tecmint7.txt
[8] /home/tecmint/Desktop/tecmint/tecmint9.txt
[9] /home/tecmint/Desktop/tecmint/tecmint10.txt
[10] /home/tecmint/Desktop/tecmint/tecmint2.txt
[11] /home/tecmint/Desktop/tecmint/tecmint5.txt
[12] /home/tecmint/Desktop/tecmint/tecmint14.txt
[13] /home/tecmint/Desktop/tecmint/tecmint1.txt
[14] /home/tecmint/Desktop/tecmint/tecmint15.txt
[15] /home/tecmint/Desktop/tecmint/tecmint12.txt

Set 1 of 1, preserve files [1 - 15, all]: 

Észreveheti, hogy az összes ismétlődés szerepel a listán, és a rendszer felszólítja a törlésre, akár egyenként, akár egy bizonyos tartományt, vagy az összeset egyszerre. Kiválaszthat egy tartományt az alábbiakhoz hasonló tartományt, hogy törölje az adott tartományba tartozó fájlokat.

Set 1 of 1, preserve files [1 - 15, all]: 2-15

   [-] /home/tecmint/Desktop/tecmint/tecmint13.txt
   [+] /home/tecmint/Desktop/tecmint/tecmint8.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint11.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint3.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint4.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint6.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint7.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint9.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint10.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint2.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint5.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint14.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint1.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint15.txt
   [-] /home/tecmint/Desktop/tecmint/tecmint12.txt

8. Biztonsági szempontból érdemes lehet az „fdupes” kimenetét fájlba nyomtatni, majd a szövegfájl ellenőrzésével eldönteni, hogy melyik fájlt törölje. Ez csökkenti a fájl véletlen törlésének esélyét. A következőket teheti:

fdupes -Sr /home > /home/fdupes.txt

Megjegyzés: A '/home' kifejezést lecserélheti a kívánt mappára. Használja a „-r” és a „-S” opciót is, ha rekurzívan és Nyomtatási méretben szeretne keresni.

9. A '-f' kapcsoló használatával kihagyhatja az első fájlt az egyes egyezések készleteiből.

A könyvtár első listája.

$ ls -l /home/$USER/Desktop/tecmint

total 20
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (3rd copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (4th copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (another copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9 (copy).txt
-rw-r--r-- 1 tecmint tecmint 65 Aug  8 11:22 tecmint9.txt

majd hagyja ki az első fájlt minden egyezéshalmazból.

$ fdupes -f /home/$USER/Desktop/tecmint

/home/tecmint/Desktop/tecmint9 (copy).txt
/home/tecmint/Desktop/tecmint9 (3rd copy).txt
/home/tecmint/Desktop/tecmint9 (another copy).txt
/home/tecmint/Desktop/tecmint9 (4th copy).txt

10. Ellenőrizze az fdupes telepített verzióját.

$ fdupes --version

fdupes 1.51

11. Ha segítségre van szüksége az fdupes-el kapcsolatban, használja a '-h' kapcsolót.

$ fdupes -h

Usage: fdupes [options] DIRECTORY...

 -r --recurse     	for every directory given follow subdirectories
                  	encountered within
 -R --recurse:    	for each directory given after this option follow
                  	subdirectories encountered within (note the ':' at
                  	the end of the option, manpage for more details)
 -s --symlinks    	follow symlinks
 -H --hardlinks   	normally, when two or more files point to the same
                  	disk area they are treated as non-duplicates; this
                  	option will change this behavior
 -n --noempty     	exclude zero-length files from consideration
 -A --nohidden    	exclude hidden files from consideration
 -f --omitfirst   	omit the first file in each set of matches
 -1 --sameline    	list each set of matches on a single line
 -S --size        	show size of duplicate files
 -m --summarize   	summarize dupe information
 -q --quiet       	hide progress indicator
 -d --delete      	prompt user for files to preserve and delete all
                  	others; important: under particular circumstances,
                  	data may be lost when using this option together
                  	with -s or --symlinks, or when specifying a
                  	particular directory more than once; refer to the
                  	fdupes documentation for additional information
 -N --noprompt    	together with --delete, preserve the first file in
                  	each set of duplicates and delete the rest without
                  	prompting the user
 -v --version     	display fdupes version
 -h --help        	display this help message

Most ennyi. Mondja el, hogyan talált és törölt eddig ismétlődő fájlokat Linuxon? és mondja el véleményét erről a segédprogramról. Írja be értékes visszajelzéseit az alábbi megjegyzés rovatba, és ne felejtsen el lájkolni/megosztani minket, és segítsen elterjedni.

Egy másik, fslint nevű segédprogramon dolgozom, hogy eltávolítsam a duplikált fájlokat, hamarosan közzéteszem, és ti, emberek, imádni fogjátok az olvasást.