Z http://en.wikipedia.org/wiki/Symbolic_link#Storage_of_symbolic_links
Dřívější implementace symbolických odkazů ukládaly informace o symbolických odkazech
jako data v běžných souborech. Soubor obsahoval textový
odkaz na cíl odkazu a indikátor [potřebné upřesnění]
označující jej jako symbolický odkaz.Tato metoda byla pomalá a neefektivní využití místa na disku na malých
systémech. Vylepšení zvané rychlé symbolické odkazy , povolilo uložení
cílové cesty v rámci datových struktur používaných pro ukládání
informací o souboru na disk (inody) . V tomto prostoru je normálně uložen seznam
adres diskových bloků přidělených souboru. K symbolickým odkazům s krátkými
cílovými cestami je tedy rychlý přístup. Systémy s rychlými symbolickými odkazy se často
vrátí k použití původní metody, pokud cílová cesta překročí
dostupný prostor inodů . Původní styl se zpětně nazývá
pomalý symbolický odkaz . Používá se také pro kompatibilitu disků s jinými nebo
staršími verzemi operačních systémů.
-
Znamená „povolené ukládání cílové cesty v rámci datových struktur
používaných pro ukládání informací o souborech na disk (inody)“ to, že rychlý
symbolický odkaz ukládá cestu k propojenému souboru do inodu
rychlý symbolický odkazMá rychlý symbolický odkaz jako samotný soubor ve skutečnosti pouze inode
a nemá žádný obsah souboru?Má pomalý symbolický odkaz jako samotný soubor inode a nějaký obsah souboru
, který je cílovou cestou? -
Co znamená „pokud cílová cesta přesahuje dostupný prostor inodů“
?Je správné, že pokud je symbolický odkaz na soubor rychlým symbolickým odkazem, a
pouze v případě, že symbolický odkaz a soubor jsou ve stejném systému souborů? -
Existuje nějaký příkaz, který dokáže zkontrolovat, zda je symbolický odkaz rychlý nebo pomalý
? -
Když má symbolický odkaz obsah souboru, jaký je příkaz k zobrazení
obsahu symbolického odkazu? (Takže pokud rychlý symbolický odkaz nemá obsah souboru
a pomalý ano, můžeme to ověřit.)
Přijatá odpověď:
Znamená „povolené ukládání cílové cesty v rámci datových struktur používaných pro ukládání informací o souborech na disk (inody)“ to, že rychlý symbolický odkaz ukládá cestu k propojenému souboru uvnitř inodu rychlého symbolického odkazu
Ano
Má rychlý symbolický odkaz jako samotný soubor ve skutečnosti pouze inode a nemá žádný obsah souboru?
Záleží na tom, co myslíte „má obsah souboru“. Žádné symbolické odkazy nemají obsah souboru v tom smyslu, že nemůžete open()
a read()
od nich. Ale ve smyslu naznačeném textem, který jste citovali, „Soubor obsahoval textový odkaz na cíl odkazu“. Takže ano, tento textový odkaz lze považovat za „obsah souboru“.
Tento obsah je stejný bez ohledu na to, zda je symbolický odkaz rychlý nebo pomalý. Jak a kde se souborový systém rozhodne uložit tyto informace ve svých datových strukturách na disku, je implementační detail a nemá na to vliv.
Má pomalý symbolický odkaz jako samotný soubor inode a nějaký obsah souboru, který je cílovou cestou?
Ze stejného úhlu pohledu ano!
Co znamená „pokud cílová cesta přesahuje dostupný prostor inodů“?
Závisí na souborovém systému a druhu datových struktur, které se používají k ukládání inodů, a na tom, kolik volného místa je v těchto datových strukturách a zda mají proměnnou nebo pevnou velikost. Maximální délka cílové cesty symbolického odkazu, než se musí uložit zpět jako pomalý symbolický odkaz, je detail implementace souborového systému.
Mimochodem, nic nebrání konkrétnímu souborovému systému použít stejný trik k uložení obsahu krátkého běžného soubor pro úsporu místa a přístupu na disk.
Existuje nějaký příkaz, který dokáže zkontrolovat, zda je symbolický odkaz rychlý nebo pomalý?
V nejlepším případě nástroje pro ladění nebo dumping souborového systému. A bude zcela záviset na typu souborového systému, který vás zajímá (xfs, ext*, btrfs, atd...)
Když má symbolický odkaz obsah souboru, jaký je příkaz k zobrazení obsahu symbolického odkazu? (Takže pokud rychlý symbolický odkaz nemá obsah souboru a pomalý ano, můžeme to ověřit.)
Cílovou cestu (obsah) symbolického odkazu můžete získat pomocí readlink
, ale ls -l
bude fungovat také.