fdupes – komandų eilutės įrankis, skirtas rasti ir ištrinti pasikartojančius failus sistemoje „Linux“.
Daugeliui kompiuterių vartotojų yra įprastas reikalavimas rasti ir pakeisti pasikartojančius failus. Pasikartojančių failų paieška ir pašalinimas yra varginantis darbas, reikalaujantis laiko ir kantrybės. Pasikartojančių failų paieška gali būti labai paprasta, jei jūsų kompiuteryje yra GNU/Linux, naudojant „fdupes“ programą.
Kas yra fdupes?
Fdupes yra „Linux“ programa, kurią parašė Adrianas Lopezas C programavimo kalba, išleista pagal MIT licenciją. Programa gali rasti pasikartojančius failus nurodytame katalogų ir pakatalogių rinkinyje. „Fdupes“ atpažįsta dublikatus, lygindamas failų MD5 parašą, po kurio baitas į baitą. Su Fdupes galima perduoti daugybę parinkčių, kad būtų galima išvardyti, ištrinti ir pakeisti failus kietosiomis nuorodomis į dublikatus.
Palyginimas prasideda tokia tvarka:
dydžių palyginimas > Dalinis MD5 parašo palyginimas > Visas MD5 parašo palyginimas > Baitų palyginimas.
Įdiekite fdupes Linux
Naujausios fdupes versijos (1.51 versijos fdupes) įdiegimas taip pat paprastas, kaip vykdyti komandą Debian pagrįstose sistemose, pvz., Ubuntu ir Linux Mint.
sudo apt-get install fdupes
CentOS/RHEL ir Fedora pagrįstose sistemose turite įjungti „epel“ saugyklą, kad įdiegtumėte „fdupes“ paketą.
yum install fdupes
dnf install fdupes [On Fedora 22 onwards]
Pastaba: numatytoji paketų tvarkyklė yum pakeista dnf iš Fedora 22 toliau…
Kaip naudoti komandą fdupes?
1. Demonstravimo tikslais sukurkime kelis pasikartojančius failus kataloge (tarkime, tecmint) tiesiog taip:
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
Vykdę aukščiau nurodytą komandą, patikrinkime, ar sukurti failų dublikatai, ar nenaudojama komanda ls.
$ 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
Aukščiau pateiktas scenarijus sukuria 15 failų, būtent tecmint1.txt, tecmint2.txt…tecmint15.txt ir visuose failuose yra tie patys duomenys, t.
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Dabar ieškokite pasikartojančių failų aplanke 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. Ieškokite dublikatų rekursyviai kiekviename kataloge, įskaitant jo pakatalogius, naudodami parinktį -r.
Jis rekursyviai ieško visuose failuose ir aplankuose, priklausomai nuo failų ir aplankų skaičiaus, dublikatų nuskaitymas užtruks šiek tiek laiko. Per tą laiką jums bus pateikta visa pažanga terminale, kažkas panašaus į šį.
$ fdupes -r /home
Progress [37780/54747] 69%
4. Peržiūrėkite aplanke rastų dublikatų dydį naudodami -S parinktį.
$ 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. Galite matyti pasikartojančių failų dydį kiekviename kataloge ir pakatalogiuose, vienu metu naudodami parinktis -S ir -r , kaip:
$ 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. Išskyrus paiešką viename aplanke arba visuose aplankuose rekursyviai, galite pasirinkti dviejuose arba trijuose aplankuose, jei reikia. Jau nekalbant apie tai, jei reikia, galite naudoti parinktis -S ir (arba) -r.
fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Norėdami ištrinti pasikartojančius failus išsaugodami kopiją, galite naudoti parinktį „-d“. Naudodami šią parinktį turėtumėte būti ypač atsargūs, nes galite prarasti reikalingus failus/duomenis ir nepamirškite, kad procesas yra neatkuriamas.
$ 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]:
Galite pastebėti, kad išvardyti visi dublikatai, ir būsite paraginti ištrinti po vieną, tam tikrą diapazoną arba visus vienu metu. Norėdami ištrinti konkretaus diapazono failus, galite pasirinkti diapazoną, panašų į žemiau.
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. Saugos požiūriu galbūt norėsite išspausdinti fdupes išvestį į failą ir patikrinti tekstinį failą, kad nuspręstumėte, kurį failą ištrinti. Tai sumažina tikimybę, kad failas bus netyčia ištrintas. Galite padaryti:
fdupes -Sr /home > /home/fdupes.txt
Pastaba: galite pakeisti „/home“ norimu aplanku. Taip pat naudokite parinktis „-r“ ir „-S“, jei norite ieškoti rekursyviai ir atitinkamai spausdinimo dydį.
9. Galite praleisti pirmąjį failą iš kiekvieno atitikčių rinkinio naudodami parinktį „-f“.
Pirmasis katalogo failų sąrašas.
$ 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
ir tada praleiskite pirmąjį failą iš kiekvieno atitikmenų rinkinio.
$ 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. Patikrinkite įdiegtą fdupes versiją.
$ fdupes --version
fdupes 1.51
11. Jei jums reikia pagalbos dėl fdupes, galite naudoti jungiklį „-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
Tai dabar visiems. Praneškite man, kaip iki šiol radote ir ištrynėte pasikartojančius failus „Linux“? ir taip pat pasakykite man savo nuomonę apie šią priemonę. Pateikite savo vertingą atsiliepimą žemiau esančiame komentarų skiltyje ir nepamirškite pamėgti/pasidalyti mumis ir padėkite mums skleistis.
Aš dirbu su kita programa, vadinama fslint, kad pašalinčiau pasikartojančius failus, netrukus paskelbsiu ir jums, žmonėms, patiks skaityti.