GNU/Linux >> Znalost Linux >  >> Linux

Jak zkopírovat symbolické odkazy?

cp --preserve=links

Z manuálové stránky:

   --preserve[=ATTR_LIST]
          preserve  the   specified   attributes   (default:   mode,owner-
          ship,timestamps),  if  possible  additional attributes: context,
          links, xattr, all

Osobně používám cp -av pro většinu mého těžkého kopírování. Tímto způsobem mohu vše zachovat - dokonce i rekurzivně - a vidět výstup. Samozřejmě je to jen osobní preference.

Proč vaše ostatní možnosti nedělaly to, co jste očekávali, -s vytvoří odkaz místo toho kopírování a -L následuje odkazy ve zdroji a najde soubor ke kopírování namísto kopírování samotných odkazů.


Jak říká manuálová stránka, použijte -P . Toto nastavení říká:

-P, --no-dereference
       never follow symbolic links in SOURCE

Pokud odkazy obsahují relativní cesty, zkopírováním odkazu se relativní cesta neupraví. Použijte readlink , s přepínačem -f sledovat rekurzivně, abyste získali absolutní cestu odkazu. Například:

ln -s $(readlink -f old/dir/oldlink) new/dir/newlink

Pokud chcete zachovat relativní cesty, použijte volbu -P z cp , jak řekl Ignacio Vazquez-Abrams, je to, co potřebujete.


Linux
  1. Jak aktualizovat symbolický odkaz pro Linux

  2. Jak zkopírovat databázi MySQL

  3. Chování cd/bash na symbolických odkazech

  1. Jak vytvořit symbolické odkazy na všechny soubory (třídu souborů) v adresáři?

  2. Jak změnit vlastnictví ze symbolických odkazů?

  3. Použití příznaku archivu rsync bez kopírování symbolických odkazů

  1. Jak vytvořit pevné a symbolické odkazy v Linuxu

  2. Příliš mnoho úrovní symbolických odkazů

  3. Jak transakčně zkopírovat soubor?