Pieni johdanto:
Tästä ohjelmasta voi olla apua jos sinulla on paljon esimerkiksi musiikki-, video- tai valokuvatiedostoja ja mahdollisesti niiden kopioita --- mahdollisesti vielä useammalla eri koneella. Olisi tarve kerätä ja siivota ylimääräisiä pois mutta et ole aivan varma että mitkähän on jo kopioitu talteen, mitkä ovat kokonaan uusia ja tiedostoja on eri koneillakin. Ongelma tulee hankalammaksi kun muunnetaan tiedostoja, esimerkiksi flac --> mp3 --> ogg tai flv --> mp4. Kopioita ja kopion kopioita saattaa olla eri muodoissa.
Itselläni tyypillinen tilanne: Perheen nuorin nauhoittelee Areenasta lasten ohjelmia, tallettuvat .flv muodossa. Osa niistä on tallessa pöytäkoneellani, osa läppärillä, paikkaa kun vaihdetaan sen mukaan mitä konetta isi sattuu tarvitsemaan. Konvertoin nuo nykyään .mp4 muotoon ja siirrän kotipalvelimelle mistä webbiselaimella pystyy noita katselemaan miltä kodin koneelta hyvänsä. Kun aikaa oli kulunut tuli tarve siivota turhat kopiot, samoja ohjelmia oli läppärillä, pöytäkoneella ja palvelimellani. Näitä on vuosien jälkeen jo hirvittävä määrä ja joukossa oli katkenneita nauhoituksia kun kone oli sammutettu ennenaikaisesti.
Käsin vertailemalla yksittäisiä tiedostoja:
a) Löytyykö saman niminen tiedosto
b) Löytyykö se saman pituisena (ehjänä)
c) Löytyykö se tiedosto eri tiedostotyypillä (.flv --> .mp4)
alkoi tuntua ikuisuushommalta jo muutaman tiedoston jälkeen --- ja näitä on eri hakemistoissa paljon lisää. Siispä kirjoittelin ohjelman (bash-skripti) joka sai sattumalta (?) nimekseen deldup ( Delete Duplicates).
Mitä deldup tekee ?
Deldup on päätteessä ajettava komentoriviohjelma. Käyttö on yritetty tehdä yksinkertaiseksi ja helpoksi oivaltaa jo ensimmäisestä kokeesta alkaen. Siivoustoimnta kohdistuu aina nykyiseen hakemistoon eli haluttun paikkaan mennään ensin tavalliseen tapaan liikkumalla "cd" komennoilla. Asennuksen jälkeen ohjelman käytössä on kaksi vaihetta:
1) Ensin ohjelma kysyy etsitäänkö duplikaatteja ja ohjelma katsoo nykyisestä hakemistosta tiedoston nimen, varmistaa löytyykö nimeltään ja pituudeltaan sama tiedosto toisesta paikasta jonka olet kertonut, jos on talleessa ja saman pituinen niin nimetään nykyisessä hakemistossa oleva tiedosto ".dup" -loppuiseksi. Näin käydään läpi kaikki tiedostot nykyisessä hakemistossasi, verrataan ja nimetään jos löytyi sama.
2) Seuraavassa vaiheessa kysytään halutaanko ".dup" nimetyt poistaa. Tuohon vastataan isolla "R" kirjaimella jos halutaan heti poistaa (ei peruttavissa). Jos olet epävarma niin voit vastata mitä vaan muuta ja poistoa ei tehdä, ".dup" loppuiset jäävät ja niitä voi käydä tarkastelemassa.
Jos jätit osuman saaneet tiedostot ".dup" loppuisiksi niin pääset tähän kakkosvaiheeseen suoraan uudestaan kun käynnistät deldup: in uudestaan ja vastaat ohjelman alussa että duplikaatteja ei etsitä.
Tiedostotyypin yliajo
Deldup etsii halutessasi eri tiedostotyyppiä jos kerrot niin. Jos haluat ".flv" tiedsotot poistetaan nykyisestä hakemistosta kun sama löytyy "mp4" muodossakin niin voit kertoa tämän määrityksen kahden plus-merkin välissä näin: +flv=mp4+
Esimerkki tuonnempana valaisee tuota lisää.
Asennus
Asennus on erittäin yksinkertainen:
1) Tiputa deldup.bash ensin:
[url=http://www.homelinuxpc.com/download/deldup.bash]http://www.homelinuxpc.com/download/deldup.bash[/url]
Edit: Käytä uudempaa latauslinkkiä tuolla alempana (uudempi versio)
2) Anna ajo-oikeus sille. Graafisesti tuo käy kun katsoo hiiren oikealla napilla "Tiedoston ominaisuudet", "Oikeudet", ruksi "Salli tiedoston suoritus ohjelmana". Tai päätteessä siinä kansiossa missä deldup on:
chmod +x deldup
3) Käynnistä pääte. Mene hakemistoon (=kansioon) minne tiputit tuon "deldup.bash" ohjelman, usein se on /Lataukset Ubuntussa:
cd Lataukset
Varmista "ls" -komennolla että "deldup" on siellä:
ls
Asenna se ajamalla ilman mitään lisukkeita komentorivillä eli näin:
./deldup
Pyytää salasanasi että voi kopioida sen ---> /usr/local/bin
Valmis.
Käyttö
Ohjelmaa voi käyttää kahdelle eri tavalla, esimerkit valaisevat parhaiten:
1. Etsitään ja käsitellään tasan saman nimisiä tiedostoja
deldup /home/matti/Videot
Etsii nykyisestä hakemistosta tiedoston ja nimeää/poistaa sen vain jos sama löytyy myös /home/matti/Videot hakemistosta (=kansiosta). Tarkastaa samalla myös että tiedoston koko on sama tai sille ei tehdä mitään.
2. Etsitään ja käsitellään saman nimisiä mutta eri tiedostopäätteellä olevia tiedostoja:
deldup +flv=mp4+ /home/matti/Videot
Etsii nykyisestä hakemistosta vain .flv -tiedostoja ja nimeää/poistaa vain jos saman niminen mutta .mp4 -loppuinen löytyy /home/matti/Videot hakemistosta (=kansiosta).
Muuta
Ohjelma voi kurkkia palvelinlinkkejä yhtä hyvin (ja itse käytänkin sitä niin sftp: n kautta) kunhan linkki on mountattu jonnekin. Ohjelma luo "delduplog" hakemiston kotihakemistosi alle ja kirjoittaa sinne käynnistyessään käynnistymisajan. Jos tiedostokoko ei täsmää vertailussa sinne tulee merkintä. Jos tiedostot ovat eri kokoisia niin asia pitää itse tutkia, jompi kumpi tiedosto on silloin katkennut ja ohjelma ei koske niihin. Jos tiedostopääte "yliajetaan" (esim. +mp3=ogg+ )niin tiedostojen kokovertailua ei tehdä.
Ohjelma osaa käsitellä myös polkuja ja tiedostoja missä on välilyöntejä nimessä, kannattaa kuitenkin varoiksi käyttää lainausmerkkejä ympärillä jos kohtaat näitä. Ohjelma yrittää jossain määrin tarkastaa käyttäjän kirjoitus/käyttövirheitä ettei sille kelpaa aivan "deldup hölöpölö". Myös helppi elää hieman tilanteen mukaan.
Ohjelmassa on sisäänrakennettu installeri joka tarvittaessa päivittää myös ohjelman kun asennusvaihe ajetaan uudemmalla versiolla.
Tietoturva
Ohjelma on alusta loppuun käsiaalaani ja helposti kenen hyvänsä bash-taitoisen tarkastettavissa. Voit tarkastaa näin että lataus on onnistunut ja koodia ei ole väärennetty:
md5sum deldup
a1b94a9edf49483d84ba27d9a7c22d17 deldup.bash
Edit: Tarkasta että tulos on sama kuin deldup.md5 tekstitiedostossa (katso alempana).
Jos versio vaihtuu myöhemmin niin tuo tarkistussuma vaihtuu tietysti myöskin.
Viat
Olen pyöritellyt tuota aika monesti täällä mutta korjattavaa tai parannettavaa varmaan silti löytyy, kommentit tervetulleita.
Edit: Korjasin pienen bugin ja laitoin uusimman esille.
deldup -v
deldup v1.14
deldup v1.15
Edit 6.11.2014: Ohjeesta viivattu yli vanhentuneita kohtia ja lisätty hieman uutta.