Makseviisid Abuse

Linkide eemaldamine Linuxis

10.04.2022, 01:05

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.

Kuidas kustutada linki

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.

Kontrollimine, et tegemist on lingiga

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

Linkide eemaldamine Linuxis

Saate kontrollida kogu kataloogi linke:

$ ls -l ~/symlin

Linkide eemaldamine Linuxis

Vältimatu fail on tähistatud iseloomuliku noolega nime järel.

Kasutades Rm

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

Linkide eemaldamine Linuxis

Samuti, et saada üksikasjalikku teavet protseduuri kohta, lisage käsule valik -v:

$ rm -v ~/symlinks/link_1

Linkide eemaldamine Linuxis

Lisaks saate kontrollida, kas link on kataloogist kadunud. Selleks kasutage eelnevalt kirjeldatud käsku ls.

Linkide eemaldamine Linuxis

Nüüd teate, kuidas eemaldada Linuxi sümboolset linki.

UNLINK-i kasutamine

Utiliit unlink on mõeldud failide eemaldamiseks Linuxi failisüsteemist. See vajab ainult lingi teekonna määramist:

$ unlink ~/symlinks/link_1

Linkide eemaldamine Linuxis

Antud ülesande raames töötavad rm ja unlink peaaegu identselt. Nüüd liigume viimase meetodi juurde.

Find'i kasutamine

Find käsu abil saab otsida ja kustutada linke antud kataloogis. See tähendab, et te ei pea kasutama lisaks ls-i.

Linkide eemaldamine Linuxis

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

Linkide eemaldamine Linuxis

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

Linkide eemaldamine Linuxis

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

Linkide eemaldamine Linuxis

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

Linkide eemaldamine Linuxis

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

Linkide eemaldamine Linuxis

Selle tulemusena kuvatakse terminalis kõik katkised lingid. Nende eemaldamiseks lisage käsu lõppu -delete:

$ find ~/broken_links/ -xtype l -delete

Linkide eemaldamine Linuxis

Sellega on lingi kustutamise juhised Linuxis lõpetatud.