Comment remplacer un lien symbolique par une copie d'un fichier auquel il est lié?


15

Ayant un lien symbolique (un seul, aucun traitement de système de fichiers par lots nécessaire), quelle ligne de commande utiliser pour le remplacer par une copie du fichier auquel il est lié?

Réponses:


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

1
erreur "-bash: erreur de syntaxe près du jeton inattendu" newline "" lorsqu'il est exécuté à partir d'un environnement debian.
Lin Song Yang

Si <symlink>est un lien symbolique vers un chemin relatif, cela ne fonctionne que si le <symlink>est dans le répertoire courant. Vous voudrez peut-être utiliser readlink -f. Ou si vous utilisez zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Stéphane Chazelas

0

Vous pourriez faire:

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

(qui copie uniquement le contenu, pas les métadonnées du fichier comme les autorisations et la propriété).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.