GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible d'éditer un lien symbolique avec un éditeur de texte ?

Ce n'est pas possible directement, comme d'autres l'ont déjà souligné, mais vous pouvez bien sûr écrire un script pour cela. En voici un que j'ai trouvé quand j'ai dû changer beaucoup de liens symboliques

#! /bin/bash

tmp=$(mktemp)
trap "rm $tmp" EXIT

while [ ! -z "$1" ]; do
    filename="$1"; shift
    if [ ! -h "$filename" ]; then
        echo "Not a symlink: $filename";
        continue
    fi
    stat -c "%N" "$filename" >> $tmp
done
emacs $tmp

while read filename linkname; do
    ln -sf "$linkname" "$filename"
done < <(sed "s/'\(.*\)' -> '\(.*\)'/\1 \2/" $tmp)

Cela a fonctionné pour moi, mais ce n'est certainement pas parfait, alors utilisez-le à vos risques et périls...


C'est possible en principe, mais l'éditeur devrait le supporter spécifiquement, car la lecture de la destination d'un lien symbolique nécessite un appel système spécial :readlink() .

Il est peu probable que vous trouviez des éditeurs qui le fassent réellement, car ce n'est pas très utile et entre en conflit avec ce que la plupart des utilisateurs attendent de l'éditeur lorsqu'il lui est demandé d'ouvrir un lien symbolique :ouvrir le fichier vers lequel il pointe.


Selon le Stockage des liens symboliques section dans l'article de Wikipédia Liens symboliques, les liens symboliques sont stockés dans un inode . Cet inode est une structure de données contenant plusieurs informations sur le fichier en question - selon ce fil, le touch La commande peut être utilisée pour modifier certaines de ses valeurs. Ainsi, il peut ne pas être possible de le modifier à l'aide d'un éditeur de texte, en raison des problèmes mentionnés par @Wyzard, mais il peut être modifiable en utilisant d'autres outils de ligne de commande comme touch .

J'espère que cela vous aidera !


Oui, dans Emacs, cela est possible en mode dired, en particulier en mode wdired (directement inscriptible).

Notez que dired et wdired sont tous deux des packages intégrés.

Voici un exemple...

(BTW :j'utilise Smex pour donner à Emacs M-x recherche de commandes et exécution d'une interface utilisateur plus ergonomique + correspondance floue)


Linux
  1. Alimentez votre éditeur de texte de terminal Linux avec ed

  2. Guide de l'éditeur de texte ViM 101

  3. Comment éditer les fichiers système avec l'éditeur Kate ? ?

  4. Atom-IDE - Éditeur de texte Atom sur les stéroïdes

  5. Édition à distance avec un éditeur local (Linux)

Comment travailler avec Nano Editor sous Linux

Premiers pas avec l'éditeur de texte Nano [Guide du débutant]

Comment installer des packages dans l'éditeur de texte Atom

Top 7 des meilleurs éditeurs de texte sous Linux

Travailler avec l'éditeur Vim (éditeur de texte)

Éditeur de texte/journal avec prise en charge de l'actualisation automatique