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.
Jak zavřít rmiregistry běžící na konkrétním portu?
Jak zkontrolovat velikost haldy pro proces v Linuxu