Linuxis on link spetsiaalne fail, mis viitab teisele failile või kataloogile. Nii saab ühte faili paigutada korraga mitmesse kohta. Kui originaalfail kustutatakse, jääb link sellele alles. See võib põhjustada krahhi ja üldiselt ummistab süsteemi.
Alustuseks selgitame meetodit, kuidas kontrollida, kas fail on tegelikult link. Seda saab mugavalt teha abiprogrammi ls
abil. Pärast seda vaatleme kolme eemaldamismeetodit, millest igaühel on oma eripärad.
Programmi ls
abil on mugav näha teavet faili kohta. Utiliidi kasutamiseks tuleb anda sellele valik -l
ja määrata teekond. Võtame näiteks faili ~/symlinks/link_1
:
$ ls -l ~/symlinks/link_1
Saate kontrollida kogu kataloogi linke:
$ ls -l ~/symlin
Vältimatu fail on tähistatud iseloomuliku noolega nime järel.
Käsuga rm
saab kustutada mis tahes faili Linuxi failisüsteemis, sealhulgas ka linke. See tähendab, et see sobib meie ülesande täitmiseks. Oluline on siinkohal mainida, et linkide kustutamise tulemusena ei mõjuta originaalfaili või -kataloogi.
Käivitage terminalis käsk:
$ rm ~/symlinks/link_1
Samuti, et saada üksikasjalikku teavet protseduuri kohta, lisage käsule valik -v
:
$ rm -v ~/symlinks/link_1
Lisaks saate kontrollida, kas link on kataloogist kadunud. Selleks kasutage eelnevalt kirjeldatud käsku ls
.
Nüüd teate, kuidas eemaldada Linuxi sümboolset linki.
Utiliit unlink
on mõeldud failide eemaldamiseks Linuxi failisüsteemist. See vajab ainult lingi teekonna määramist:
$ unlink ~/symlinks/link_1
Antud ülesande raames töötavad rm ja unlink peaaegu identselt. Nüüd liigume viimase meetodi juurde.
Find
käsu abil saab otsida ja kustutada linke antud kataloogis. See tähendab, et te ei pea kasutama lisaks ls-i
.
Erinevalt kahest eelmisest võimalusest on tal üsna täiustatud funktsioonid, näiteks otsingukriteeriumide seadmine. Kuid ka sellepärast ei ole süntaks nii lihtne.
Otsimiseks tuleb määrata kataloog ja mõned parameetrid:
$ find ~/symlinks/ -type l -print
Parameeter -type l
on vajalik, et valida ainult sümboolseid linke, -print
, et väljastada täisnimi. Ja parameetri -maxdepth
abil saab määrata otsingu sügavuse sisekataloogide kaupa. Kui te määrate 1, siis otsitakse ainult kataloogi enda kohta, ilma lisadeta:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Kui kataloogis on palju linke, saate määrata otsingumustri käsu find
jaoks. Võtame näiteks olukorra, kus tahame leida ainult peidetud linke, mille viimane muutmise kuupäev ei ole rohkem kui 30 päeva tagasi:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
On lisatud kaks kriteeriumi:
-name
- otsing nime
järgi.-mtime
- muutmisaja järgi.Kõik leitud lingid saab kustutada vastavalt määratud mustrile. Selleks on -print
asendatud -delete-ga
:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Juhendi lõpus tegeleme katkiste linkide otsimise ja kustutamisega, mis ei vii kuhugi, näiteks pärast algse faili või kataloogi kustutamist. Selleks sobib parameeter -xtype l
. -print
ei ole väljundiks vajalik:
$ find ~/broken_links/ -xtype l
Selle tulemusena kuvatakse terminalis kõik katkised lingid. Nende eemaldamiseks lisage käsu lõppu -delete
:
$ find ~/broken_links/ -xtype l -delete
Sellega on lingi kustutamise juhised Linuxis lõpetatud.