Come sostituire un collegamento simbolico con una copia di un file a cui si collega?


15

Avendo un collegamento simbolico (singolo, non necessario l'elaborazione di filesystem batch), quale riga di comando usare per sostituirlo con una copia del file a cui si collega?

Risposte:


16
cp --remove-destination "$(readlink <symlink>)" <symlink>

1
errore "-bash: errore di sintassi vicino al token imprevisto" newline "" quando eseguito da un ambiente debian.
Lin Song Yang,

If <symlink>è un collegamento simbolico a un percorso relativo, che funziona solo se si <symlink>trova nella directory corrente. Potresti voler usare readlink -f. O se si utilizza zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Stéphane Chazelas l'

0

Potresti fare:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(che copia solo il contenuto, non i metadati del file come autorizzazioni e proprietà).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.