fdupes - komentorivityökalu, jolla voit etsiä ja poistaa päällekkäisiä tiedostoja Linuxissa
Useimmille tietokoneen käyttäjille on yleinen vaatimus löytää ja korvata päällekkäisiä tiedostoja. Päällekkäisten tiedostojen etsiminen ja poistaminen on väsyttävää työtä, joka vaatii aikaa ja kärsivällisyyttä. Päällekkäisten tiedostojen löytäminen voi olla erittäin helppoa, jos koneessasi on GNU/Linux, fdupes-apuohjelman ansiosta.
Mikä on fdupes?
Fdupes on Linux-apuohjelma, jonka on kirjoittanut Adrian Lopez C-ohjelmointikielellä, joka on julkaistu MIT-lisenssillä. Sovellus pystyy löytämään päällekkäisiä tiedostoja annetuista hakemistoista ja alihakemistoista. Fdupes tunnistaa kaksoiskappaleet vertaamalla tiedostojen MD5-allekirjoituksia, joita seuraa tavujen välinen vertailu. Fdupesilla voidaan välittää monia vaihtoehtoja tiedostojen luetteloimiseksi, poistamiseksi ja korvaamiseksi kiintolinkeillä kaksoiskappaleisiin.
Vertailu alkaa järjestyksessä:
Kokojen vertailu > Osittainen MD5-allekirjoituksen vertailu > Täydellinen MD5-allekirjoituksen vertailu > tavujen välinen vertailu.
Asenna fdupes Linuxiin
Uusimman fdupes-version (fdupes-versio 1.51) asentaminen on yhtä helppoa kuin seuraavan komennon suorittaminen Debian-pohjaisissa järjestelmissä, kuten Ubuntu ja Linux Mint.
sudo apt-get install fdupes
CentOS/RHEL- ja Fedora-pohjaisissa järjestelmissä sinun on otettava epel-tietovarasto käyttöön fdupes-paketin asentamiseksi.
yum install fdupes
dnf install fdupes [On Fedora 22 onwards]
Huomaa: Oletuspakettien hallinta yum on korvattu Dnf:llä Fedora 22:sta eteenpäin…
Miten fdupes-komentoa käytetään?
1. Esittelytarkoituksessa luodaan muutama kaksoistiedosto hakemistoon (kuten tecmint) seuraavasti:
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
Yllä olevan komennon suorittamisen jälkeen tarkistetaan, että tiedostojen kaksoiskappaleet on luotu vai ei käytetä ls-komentoa.
$ 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
Yllä oleva komentosarja luo 15 tiedostoa, nimittäin tecmint1.txt, tecmint2.txt…tecmint15.txt ja jokainen tiedosto sisältää saman tiedon, esim.
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Etsi nyt päällekkäisiä tiedostoja kansiosta 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. Etsi kopioita rekursiivisesti jokaisesta hakemistosta, mukaan lukien sen alihakemistot, käyttämällä -r-vaihtoehtoa.
Se etsii kaikista tiedostoista ja kansioista rekursiivisesti, riippuen tiedostojen ja kansioiden määrästä, kopioiden tarkistaminen kestää jonkin aikaa. Sillä välin sinulle esitetään terminaalin kokonaisedistyminen, jotain tämän kaltaista.
$ fdupes -r /home
Progress [37780/54747] 69%
4. Katso kansiosta löydettyjen kaksoiskappaleiden koko -S-vaihtoehdon avulla.
$ 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. Voit nähdä päällekkäisten tiedostojen koon jokaisessa hakemistossa ja alihakemistossa käyttämällä -S- ja -r-vaihtoehtoja samanaikaisesti. , kuten:
$ 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. Muuten kuin yhdestä kansiosta tai kaikista kansioista rekursiivisesti hakemisen lisäksi voit valita kahdesta kansiosta tai kolmesta kansiosta tarpeen mukaan. Puhumattakaan voit käyttää vaihtoehtoja -S ja/tai -r tarvittaessa.
fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Jos haluat poistaa päällekkäiset tiedostot säilyttäen samalla kopion, voit käyttää vaihtoehtoa '-d'. Tätä vaihtoehtoa käytettäessä tulee olla erityisen varovainen, muuten saatat menettää tarvittavat tiedostot/tiedot ja muistaa, että prosessia ei voida palauttaa.
$ 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]:
Saatat huomata, että kaikki kaksoiskappaleet on lueteltu ja sinua kehotetaan poistamaan joko yksitellen tai tietty alue tai kaikki kerralla. Voit valita jonkin alla olevan alueen poistaaksesi tietyn alueen tiedostot.
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. Turvallisuussyistä saatat haluta tulostaa "fdupes" -tulosteen tiedostoon ja tarkistaa sitten tekstitiedoston päättääksesi, mikä tiedosto poistetaan. Tämä vähentää mahdollisuuksia saada tiedostosi poistettua vahingossa. Voit tehdä
fdupes -Sr /home > /home/fdupes.txt
Huomaa: voit korvata '/home' haluamallasi kansiolla. Käytä myös vaihtoehtoja '-r' ja '-S', jos haluat etsiä rekursiivisesti ja tulostuskokoa.
9. Voit jättää ensimmäisen tiedoston pois kustakin osumajoukosta käyttämällä vaihtoehtoa '-f'.
Ensimmäinen luettelo hakemiston tiedostoista.
$ 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
ja jätä sitten pois ensimmäinen tiedosto kustakin osumajoukosta.
$ 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. Tarkista fdupesin asennettu versio.
$ fdupes --version
fdupes 1.51
11. Jos tarvitset apua fdupes-asioissa, voit käyttää kytkintä '-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
Se on nyt kaikille. Kerro minulle, kuinka löysit ja poistit tiedostojen kaksoiskappaleita tähän asti Linuxissa? ja kerro myös mielipiteesi tästä apuohjelmasta. Laita arvokas palautteesi alla olevaan kommenttiosioon ja älä unohda tykätä/jakaa meistä ja auta meitä leviämään.
Työskentelen toisessa fslint-nimisessä apuohjelmassa tiedostojen kaksoiskappaleiden poistamiseksi, julkaisen pian ja te ihmiset rakastatte lukea.