Pokud udelas rm myFile
kde myFile
je pevný odkaz, co se stane?
V Unixu jsou všechny normální soubory pevnými odkazy. Pevné odkazy v souborových systémech Unix (a většina (všech?)) Jsou odkazy na tzv. inode
. inode
má referenční čítač, když máte jeden „odkaz“ na soubor (což je normální modus operandi), čítač je 1. Když vytvoříte druhý, třetí, čtvrtý atd. Odkaz, čítač je zvýšen (zvýšen) pokaždé o jeden. Když odstraníte (rm
) odkaz, počítadlo se sníží (sníží) o jeden. Pokud počítadlo odkazů dosáhne 0, souborový systém odebere inode
a označí místo jako dostupné pro použití.
Stručně řečeno, pokud neodstraníte poslední odkaz, soubor zůstane.
Edit:
Soubor zůstane i po odstranění posledního odkazu . Toto je jeden ze způsobů, jak zajistit, aby zabezpečení dat obsažených v souboru nebylo přístupné jiným procesům. Úplné odebrání dat ze souborového systému se provádí pouze v případě, že k nim data mají 0 odkazů, jak jsou uvedena v jeho metadatech a nejsou používána žádným procesem.
Toto IMHO je zdaleka nejjednodušší způsob, jak porozumět pevným odkazům (a jejich rozdíl od softwarových odkazů).
Testování bylo jednodušší, než jsem si myslel: Vytvořil jsem textový soubor, na který jsem s ním pevně navázal. Smazání pevného odkazu ne odstraní soubor, ke kterému je pevně připojen, a soubor, ke kterému byl připojen, zůstane tam, kde je.
všechny soubory na disku jsou vlastně ukazateli skutečných dat na jednotce.
při vytvoření pevného odkazu pro tento soubor bude soubor s pevným odkazem směřovat na stejná data, na která ukazoval původní soubor.
jako v tomto příkladu, a.txt ukazoval na data (bajty) souboru, který je v jednotce, když je vytvořen pevný odkaz b.txt, bude ukazovat na to, na který a.txt směřoval.
odstranění jednoho z nich tedy neovlivní to druhé, které jsou od sebe odděleny.
VUT v Brně, ale pokud oba odstraníte, systém uvidí, že data, která jsou na disku, neobsahují žádné soubory, které by na něj směřovaly, takže jej systém bude považovat za volné místo a v případě potřeby jej přepíše.