GNU/Linux >> Znalost Linux >  >> Linux

Rychlé a pomalé symbolické odkazy?

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

  1. 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ý odkaz

    Má 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?

  2. 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ů?

  3. Existuje nějaký příkaz, který dokáže zkontrolovat, zda je symbolický odkaz rychlý nebo pomalý
    ?

  4. 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“.

Související:Vytvoření nového oddílu s parted pro nový pevný disk:po připojení je mnohem menší, než se očekávalo. Proč?

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é.


Linux
  1. Superblock, Inode, Dentry a soubor?

  2. Náhrada procesu a potrubí?

  3. Oprávnění a ukládání souborů?

  1. Přesměrování a výstup potrubí?

  2. Linux .htaccess tipy a triky

  3. Jak mohu symbolicky propojit soubor v Linuxu?

  1. Vlákna a deskriptory souborů

  2. Jak převést symbolický odkaz na běžný soubor?

  3. unix - hlava A konec souboru