it-swarm-eu.dev

Co se stane, když odstraníte pevný odkaz?

Pokud udelas rm myFile kde myFile je pevný odkaz, co se stane?

62
trusktr

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ů).

113
xenoterracide

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.

13
trusktr

všechny soubory na disku jsou vlastně ukazateli skutečných dat na jednotce. enter image description here

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.

enter image description here

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.

1
ZOLDIK