Linuxissa linkki on erityinen tiedosto, joka viittaa toiseen tiedostoon tai hakemistoon. Näin yksi tiedosto voidaan sijoittaa useaan paikkaan samanaikaisesti. Kun alkuperäinen tiedosto poistetaan, linkki säilyy. Tämä voi johtaa kaatumisiin ja yleensä tukkii järjestelmän.
Aluksi selitetään menetelmä, jolla tarkistetaan, että tiedosto on todella linkki. Tämä tapahtuu kätevästi ls-apuohjelman
avulla. Sen jälkeen tarkastellaan kolmea poistomenetelmää, joilla kullakin on omat erityispiirteensä.
Ls
:n avulla on kätevää nähdä tietoa tiedostosta. Jos haluat käyttää apuohjelmaa, anna sille -l-vaihtoehto
ja määritä polku. Otetaan esimerkkinä tiedosto ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Voit tarkistaa koko luettelon linkkien osalta:
$ ls -l ~/symlin
Tiedosto, jota ei tarvita, on merkitty sen nimen perässä olevalla tyypillisellä nuolella.
Komennolla rm
voidaan poistaa mikä tahansa tiedosto Linuxin tiedostojärjestelmästä, myös linkit. Eli se sopii tehtäväämme. Tässä yhteydessä on tärkeää mainita, että linkin poistaminen ei vaikuta alkuperäiseen tiedostoon tai hakemistoon.
Suorita terminaalissa komento:
$ rm ~/symlinks/link_1
Jos haluat myös yksityiskohtaisia tietoja toimenpiteestä, lisää komentoon -v-vaihtoehto
:
$ rm -v ~/symlinks/link_1
Lisäksi voit tarkistaa, onko linkki kadonnut hakemistosta. Käytä tähän aiemmin kuvattua komentoa ls
.
Nyt tiedät, miten Linuxin symbolinen linkki poistetaan.
Unlink-apuohjelma
on suunniteltu poistamaan tiedostoja Linuxin tiedostojärjestelmästä. Sen tarvitsee vain määrittää linkin polku:
$ unlink ~/symlinks/link_1
Käsiteltävänä olevan tehtävän puitteissa rm ja unlink toimivat lähes identtisesti. Siirrytään nyt viimeiseen menetelmään.
Find-komennon
avulla voit etsiä ja poistaa linkkejä tietyssä hakemistossa. Tämä tarkoittaa, että sinun ei tarvitse käyttää ls:ää
lisäksi.
Toisin kuin kahdessa edellisessä vaihtoehdossa, siinä on melko kehittyneitä ominaisuuksia, esimerkiksi hakuehtojen asettaminen. Mutta syntaksi ei ole tästäkään syystä niin yksinkertainen.
Hakua varten sinun on määritettävä hakemisto ja muutama parametri:
$ find ~/symlinks/ -type l -print
Parametri -type l
tarvitaan, jos halutaan valita vain symboliset linkit, -print
, jos halutaan tulostaa koko nimi. Ja -maxdepth-parametrin
avulla voit määrittää haun syvyyden sisäkkäisten hakemistojen mukaan. Jos annat arvon 1, haku suoritetaan vain itse hakemistosta ilman liitetiedostoja:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Kun hakemistossa on useita linkkejä, voit määrittää hakukuvion find-komentoa
varten. Otetaan esimerkiksi tilanne, jossa halutaan löytää vain piilotetut linkit, joiden viimeisin muutospäivämäärä on enintään 30 päivää sitten:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
On lisätty kaksi kriteeriä:
-name
- haku nimen
perusteella.-mtime
- haku muutosajankohdan mukaan.Kaikki löydetyt linkit voidaan poistaa määritetyn mallin mukaisesti. Tätä tarkoitusta varten -print
on korvattu -delete-merkillä
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Käsitellään ohjeen lopussa sellaisten rikkinäisten linkkien etsimistä ja poistamista, jotka eivät johda mihinkään, esimerkiksi alkuperäisen tiedoston tai hakemiston poistamisen jälkeen. Tähän tarkoitukseen sopii -xtype l
-parametri. -print-parametria
ei tarvita tulostukseen:
$ find ~/broken_links/ -xtype l
Tuloksena kaikki rikkinäiset linkit näytetään terminaalissa. Jos haluat poistaa ne, lisää -delete
komennon loppuun:
$ find ~/broken_links/ -xtype l -delete
Näin saat ohjeet linkin poistamiseen Linuxissa valmiiksi.