GNU/Linux >> Tutoriels Linux >  >> Linux

Comment convertir un lien symbolique en fichier normal ?

for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
  • Vérifier les liens symboliques dans le répertoire courant et les sous-répertoires find -type l
  • Obtenir le chemin du fichier lié readlink $f
  • Supprimez le lien symbolique et copiez le fichier cp --remove-destination $(readlink $f) $f

Il n'y a pas de commande unique pour convertir un lien symbolique en un fichier normal. Le moyen le plus direct est d'utiliser readlink pour trouver le fichier vers lequel pointe un lien symbolique, puis copiez ce fichier sur le lien symbolique :

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

Bien sûr, si bar.pdf est, en fait, un fichier normal pour commencer, cela encombrera le fichier. Une vérification de l'intégrité serait donc conseillée.


Juste une resucée des réponses des autres, mais en ajoutant le "contrôle de cohérence" pour s'assurer que le lien transmis est en fait un lien symbolique :

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

Cela signifie que si le fichier est un lien symbolique, exécutez la commande de copie.


Linux
  1. Comment puis-je lier symboliquement un fichier sous Linux?

  2. Comment convertir ISO8859-15 en UTF8 ?

  3. Comment grep \n dans le fichier

  4. Comment convertir les données d'un fichier en hexadécimal simple ?

  5. Comment convertir un fichier TAR en un fichier ISO

Comment déplacer un fichier sous Linux

Comment créer un lien symbolique vers un fichier sous Linux

Comment convertir une image de caméra Raw en JPEG sous Linux

Comment convertir un fichier Windows en un fichier UNIX

Comment convertir un fichier .pem en un fichier .ppk sous Windows et Linux

Comment convertir la clé privée de PuTTY (.ppk) en clé SSH