fdupes - Zana ya Mstari wa Amri ya Kupata na Kufuta Faili Nakala kwenye Linux


Ni hitaji la kawaida kupata na kubadilisha faili zilizorudiwa kwa watumiaji wengi wa kompyuta. Kupata na kuondoa nakala za faili ni kazi inayochosha inayohitaji wakati na subira. Kupata faili zilizorudiwa kunaweza kuwa rahisi sana ikiwa mashine yako inaendeshwa na GNU/Linux, shukrani kwa matumizi ya 'fdupes'.

Fdupes ni matumizi ya Linux iliyoandikwa na Adrian Lopez katika Lugha ya programu ya C iliyotolewa chini ya Leseni ya MIT. Programu inaweza kupata nakala za faili katika seti fulani ya saraka na saraka ndogo. Fdupes hutambua nakala kwa kulinganisha sahihi ya MD5 ya faili ikifuatiwa na ulinganisho wa baiti hadi baiti. Chaguzi nyingi zinaweza kupitishwa na Fdupes kuorodhesha, kufuta na kubadilisha faili na viungo ngumu kwa nakala.

Ulinganisho huanza kwa mpangilio:

ulinganisho wa saizi > Ulinganisho wa Sahihi ya MD5 Sehemu > Ulinganisho Kamili wa Sahihi ya MD5 > Ulinganisho wa Byte-to-Byte.

Sakinisha fdupes kwenye Linux

Usakinishaji wa toleo la hivi punde la fdupes (toleo la fdupes 1.51) rahisi kama kutekeleza amri ifuatayo kwenye mifumo ya msingi ya Debian kama vile Ubuntu na Linux Mint.

$ sudo apt-get install fdupes

Kwenye mifumo ya msingi ya CentOS/RHEL na Fedora, unahitaji kuwasha hazina ya epel ili kusakinisha kifurushi cha fdupes.

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

Kumbuka: Kidhibiti chaguo-msingi cha kifurushi yum kinabadilishwa na dnf kutoka Fedora 22 kuendelea…

Jinsi ya kutumia fdupes amri?

1. Kwa madhumuni ya onyesho, wacha tuunde nakala za faili chache chini ya saraka (sema tecmint) kama:

$ 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

Baada ya kutekeleza amri hapo juu, wacha tuhakikishe kuwa faili zilizorudiwa zimeundwa au kutotumia ls amri.

$ 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

Hati iliyo hapo juu huunda faili 15 ambazo ni tecmint1.txt, tecmint2.txt…tecmint15.txt na kila faili lina data sawa yaani,

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

2. Sasa tafuta nakala za faili ndani ya folda ya tecmint.

$ 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. Tafuta nakala kwa kujirudia chini ya kila saraka ikijumuisha saraka zake ndogo kwa kutumia -r chaguo.

Inatafuta faili na folda zote kwa kujirudia, kulingana na idadi ya faili na folda itachukua muda kuchanganua nakala. Kwa wakati huo, utawasilishwa na jumla ya maendeleo katika terminal, kitu kama hiki.

$ fdupes -r /home

Progress [37780/54747] 69%

4. Tazama saizi ya nakala zilizopatikana ndani ya folda kwa kutumia chaguo la -S.

$ 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. Unaweza kuona saizi ya faili rudufu kwa kila saraka na saraka ndogo zinazopatikana ndani ya kutumia chaguzi za -S na -r kwa wakati mmoja, kama:

$ 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. Zaidi ya kutafuta katika folda moja au folda zote kwa kujirudia, unaweza kuchagua kuchagua katika folda mbili au folda tatu inavyohitajika. Bila kutaja unaweza kutumia chaguo -S na/au -r ikiwa inahitajika.

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

7. Kufuta nakala za faili huku ukihifadhi nakala unaweza kutumia chaguo ‘-d’. Uangalifu zaidi unapaswa kuchukuliwa unapotumia chaguo hili vinginevyo unaweza kuishia kupoteza faili/data muhimu na kumbuka kuwa mchakato huo hauwezi kurejeshwa.

$ 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]: 

Unaweza kugundua kuwa nakala zote zimeorodheshwa na unaulizwa kufuta, moja baada ya nyingine au masafa fulani au zote kwa mkupuo mmoja. Unaweza kuchagua fungu kama hapa chini ili kufuta faili za masafa mahususi.

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. Kutoka kwa mtazamo wa usalama, unaweza kupenda kuchapisha towe la 'fdupes' ili faili na kisha uangalie faili ya maandishi ili kuamua ni faili gani ya kufuta. Hii inapunguza uwezekano wa kupata faili yako kufutwa kwa bahati mbaya. Unaweza kufanya:

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

Kumbuka: Unaweza kubadilisha '/nyumbani' na folda unayotaka. Pia tumia chaguo '-r' na '-S' ikiwa unataka kutafuta kwa kujirudia na Ukubwa wa Chapisha, mtawalia.

9. Unaweza kuacha faili ya kwanza kutoka kwa kila seti ya mechi kwa kutumia chaguo ‘-f’.

Orodha ya kwanza ya faili za saraka.

$ 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

na kisha uondoe faili ya kwanza kutoka kwa kila seti ya mechi.

$ 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. Angalia toleo lililowekwa la fdupes.

$ fdupes --version

fdupes 1.51

11. Ikiwa unahitaji usaidizi wowote kwenye fdupes unaweza kutumia swichi ‘-h’.

$ 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

Hiyo ni kwa wote sasa. Nijulishe jinsi ulivyokuwa unapata na kufuta faili zilizorudiwa hadi sasa kwenye Linux? na pia niambie maoni yako kuhusu shirika hili. Weka maoni yako muhimu katika sehemu ya maoni hapa chini na usisahau kulike/kushiriki nasi na utusaidie kuenea.

Ninafanyia kazi huduma nyingine inayoitwa fslint ili kuondoa nakala za faili, itachapisha hivi karibuni na nyinyi watu mtapenda kusoma.