GNU/Linux >> Znalost Linux >  >> Linux

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

for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
  • Zkontrolujte symbolické odkazy v aktuálním adresáři a podadresářích find -type l
  • Získejte propojenou cestu k souboru readlink $f
  • Odstraňte symbolický odkaz a zkopírujte soubor cp --remove-destination $(readlink $f) $f

Neexistuje jediný příkaz pro převod symbolického odkazu na běžný soubor. Nejpřímější způsob je použít readlink vyhledejte soubor, na který symbolický odkaz ukazuje, a poté tento soubor zkopírujte přes symbolický odkaz:

cp --remove-destination `readlink bar.pdf` bar.pdf

Samozřejmě, pokud bar.pdf je ve skutečnosti běžný soubor pro začátek, pak to soubor zablokuje. Proto by bylo vhodné provést určitou kontrolu zdravého rozumu.


Jen opakování odpovědí ostatních, ale přidání „kontroly zdravého rozumu“, aby se zajistilo, že předaný odkaz je ve skutečnosti symbolický odkaz:

removelink() {
  [ -L "$1" ] && cp --remove-destination "$(readlink "$1")" "$1"
}

To znamená, že pokud je soubor symbolický odkaz, spusťte příkaz copy.


Linux
  1. Jak mohu symbolicky propojit soubor v Linuxu?

  2. Jak mohu převést ukazatel na soubor ( FILE* fp ) na deskriptor souboru (int fd)?

  3. Jak převést ISO8859-15 na UTF8?

  1. Jak grep \nv souboru

  2. Jak převedu tar.bz2 na tar.gz?

  3. Jak převedu soubor .img na vhd?

  1. Jak převést soubory do kódování UTF-8 v Linuxu

  2. Jak převést PPK na soubor PEM pomocí příkazu

  3. Jak převést zvukový soubor na Opus?