Symbolické odkazy mají omezení ve způsobu fungování, jako je ls
, mv
a cp
lze s nimi pracovat, protože na rozdíl od příkazů iniciovaných shellem jako cd
, tyto funkce nemají informace o tom, jak uživatel přistupoval k adresáři s ohledem na logickou cestu (viz související příspěvek). Vypadá to jako použití mount --bind
Tato možnost místo toho může toto obejít a nabízí zvýšenou funkčnost a kompatibilitu se sambou a dalšími souborovými servery, protože připojený adresář bude mít místo odkazu dvě nezávislé fyzické cesty.
Rád bych nahradil všechny své symbolické odkazy odkazy pomocí mount --bind
možnost, ale to by znamenalo namontovat přes 150 bodů ve fstabu. Existují nějaké problémy s výkonem, které by mohly potenciálně vyplynout z tohoto nebo jiných nevýhod, které bych měl zvážit?
Přijatá odpověď:
Pomocí mount --bind
, adresářový strom existuje na dvou (nebo více) místech v hierarchii adresářů. To může způsobit řadu problémů. Zálohy a další kopie souborů vyberou všechny kopie. Je obtížné určit, že chcete kopírovat souborový systém:skončíte tak, že soubory připojené k vazbě zkopírujete dvakrát. Vyhledávání pomocí find
, grep -r
, find
, atd., projde všechny kopie a tak dále.
Nezískáte žádnou „zvýšenou funkčnost a kompatibilitu“ s připojením na vazbu. Vypadají jako jakýkoli jiný adresář, což většinou není žádoucí chování. Například Samba ve výchozím nastavení vystavuje symbolické odkazy jako adresáře; s použitím bind mount nic nezískáte. Na druhou stranu, připojení k připojení může být užitečné pro odhalení hierarchie adresářů přes NFS.
S připojením vazby nebudete mít žádné problémy s výkonem. Budete mít bolesti hlavy z administrace. Bind mounts mají svá použití, jako je zpřístupnění adresářového stromu z chrootu nebo odhalení adresáře skrytého přípojným bodem (toto je obvykle přechodné použití při přestavbě adresářové struktury). Pokud to nepotřebujete, nepoužívejte je.
Pouze root může manipulovat s připojeními. Nelze s nimi pohybovat běžnými prostředky; uzamknou své umístění a adresáře předků.
Obecně řečeno, pokud předáte příkazu symbolický odkaz, příkaz působí na samotný odkaz, pokud pracuje se soubory, a na cíl odkazu, pokud pracuje s obsahem souboru. To platí i pro adresáře. To je obvykle správná věc. Některé příkazy mají možnosti, jak zacházet se symbolickými odkazy odlišně, například ls -L
, cp -d
, rsync -l
. Ať už se snažíte dělat cokoli, je mnohem pravděpodobnější, že symbolické odkazy jsou tím správným nástrojem, než že by tím správným nástrojem byly svazky.