Nüüd tuleb meil vastu astuda ühele isegi UNIX® kasutajate seas väga levinud väärarvamusele, nagu oleks lingid, mida me seni käsitlesime (ja mida ekslikult kutsutakse “kõvadeks” linkideks), seotud ainult tavaliste failidega, mis aga pole sugugi nii — isegi nimeviidad on “lingitud”. Selleks tuleb meil aga kõigepealt selgitada, mis siis on nimeviidad ehk “pehmed” lingid (või ka “sümbolviidad”).
Nimeviidad on sellist tüüpi failid, mille ainus sisu on sõne, mis osutab kas olemasolevale või olematule failile. Kui Te kasutate nimeviita käsureal või programmis, siis Te tegelikult kasutate faili, millele see viitab, kui see on olemas. Näide:
$ echo Tere >minufail $ ln -s minufail minulink $ ls -il total 4 169 -rw-rw-r-- 1 queen queen 6 Dec 10 21:30 minufail 416 lrwxrwxrwx 1 queen queen 6 Dec 10 21:30 minulink -> minufail $ cat minufail Tere $ cat minulink Tere
Nagu näete, on faili minulink
tüübiks l
, mis tähendabki Link. Nimeviida kasutamisõigused pole eriti olulised, need on alati rwxrwxrwx
. Te näete ka seda, et see erineb failist minufail
, sest nende infosõlmenumber on erinev. Kuid see viitab just tollele failile, mistõttu käsku cat minulink andes lasete Te tegelikult näidata faili minufail
sisu. Selgitamaks, et nimeviit sisaldab suvalist sõnet, võime ette võtta järgmist:
$ ln -s "Ma olen olematu fail" teinelink $ ls -il teinelink 418 lrwxrwxrwx 1 queen queen 20 Dec 10 21:43 teinelink -> Ma olen olematu fail $ cat teinelink cat: teinelink: No such file or directory $
Nimeviitade olemasolu mõte on selles, et nii saab vabaneda teatud piirangutest, mis on omased tavalistele (“kõvadele”) linkidele:
Te ei saa luua infosõlme linki kataloogi, mis asub teises failisüsteemis kui antud infosõlm. Põhjus on lihtne: linkide arvestaja peitub infosõlmes endas, infosõlmi aga ei saa jagada failisüsteemide vahel. Nimeviitadele pole see probleem.
Te ei saa linkida katalooge, sest nii võivad failisüsteemis tekkida tsüklid. Kuid Te võite panna nimeviida osutama kataloogile ja kasutada seda nii, nagu oleks ka tegelikult tegemist kataloogiga.
Niisiis on nimeviidad mitmel juhul väga kasulikud ning sageli kiputakse sel moel linkima faile ka juhul, kui võiks kasutada tavalist linki. Tavalise lingi eeliseks on samas see, et Te ei kaota faili, kui kustutate “originaali”.
Ja lõpuks: kui Te jälgisite meie arutelu tähelepanelikult, on lihtne aru saada, et nimeviit on väga väike fail - selle suurus on kõigest vastava sõne suurus.