GNU/Linux >> Znalost Linux >  >> Linux

Vynutit vytvoření pevných odkazů na adresář?

Rozumím zdůvodnění, proč téměř každá verze unixu neumožňuje pevné propojení adresářů (ve skutečnosti je HFS+ na OS X jediný, který znám, ale ani to není snadné udělat sami). Všechny souborové systémy však teoreticky podporují pevně propojené adresáře, protože všechny adresáře obsahují alespoň jeden pevný odkaz navíc na sebe samého a navíc pevné odkazy v podadresářích směřující zpět na jejich rodiče.

Nyní si uvědomuji, že pevné propojení může být nebezpečné, pokud je zneužito, protože může vytvářet cyklické struktury, které bude kontrolovat jen málo programů, a uvíznout tak v nekonečné smyčce. Doufal jsem však, že pomocí pevných odkazů vytvořím zálohu ve stylu Time Machine, která bude fungovat pro jakýkoli unix. Nevěřím, že by tento druh struktury byl nebezpečný, protože odkazy jednoduše ukazují na předchozí zálohy; nemělo by hrozit riziko cyklického propojování. V mém případě v současné době používám pouze rsync k vytváření pevných odkazů na existující soubory, ale je to pomalé a plýtvání, zvláště u velmi velkých záloh a zvláště pokud již vím, které adresáře jsou nezměněny.

S ohledem na tuto skutečnost, existuje nějaký způsob, jak vynutit vytvoření pevných odkazů na adresář na unixových variantách? ln je pravděpodobně k ničemu, protože toto je místo, na které mnoho unixových variant zavádí svá omezení, aby zabránily pevnému propojení adresářů a ln verze, které podporují pevně propojené adresáře, konkrétně uvádějí, že operace pravděpodobně selže. Ale pro někoho, kdo zná rizika a ví, že jeho případ použití je bezpečný, existuje nějaký způsob, jak skutečně vytvořit odkaz? Ideálně pro skript shellu, ale pokud k tomu potřebuji zkompilovat malý program, pak předpokládám, že bych mohl.

Přijatá odpověď:

Nedělejte to. Pokud chcete mít záložní systém využívající pevné odkazy, abyste ušetřili místo, je lepší použít rsync s --link-dest , který pevně propojí soubory vhodně šetřit místo, aniž by to způsobilo problémy, které to způsobuje (tj. tvrdé propojení mezi adresáři je poškozením souborového systému a způsobí, že bude hlásit nesprávný počet inodů + selhání fsck + obecně má neznámou sémantiku kvůli tomu, že nejde o DAG ).


Linux
  1. Jak přejmenovat adresář v Linuxu

  2. Proč nejsou v Unixu/linuxu povoleny pevné odkazy na adresáře?

  3. Malá písmena ve všech adresářích v adresáři?

  1. Simulace pevného odkazu na adresář?

  2. Jak vytvořit měkké a pevné odkazy v Linuxu

  3. Vytvořte symbolický odkaz na adresář v Ubuntu

  1. Jak vytvořit odkaz na adresář

  2. Vytvořte nový prázdný adresářový strom z existujícího stromu se soubory

  3. vytvořit domovské adresáře po vytvoření uživatelů