GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile modificare un collegamento simbolico con un editor di testo?

Non è possibile direttamente, come altri hanno già sottolineato, ma ovviamente puoi scrivere una sceneggiatura per questo. Eccone uno che mi è venuto in mente quando ho dovuto modificare molti collegamenti simbolici

#! /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)

Ha funzionato per me, ma certamente non è perfetto, quindi usalo a tuo rischio e pericolo...


È possibile in linea di principio, ma l'editor dovrebbe supportarlo in modo specifico, poiché la lettura della destinazione di un collegamento simbolico richiede una chiamata di sistema speciale:readlink() .

È improbabile trovare editor che lo facciano effettivamente, dal momento che non è molto utile ed è in conflitto con ciò che la maggior parte degli utenti desidera che l'editor faccia quando viene chiesto di aprire un collegamento simbolico:aprire il file a cui punta.


Come per Archiviazione di collegamenti simbolici sezione nell'articolo di Wikipedia Collegamenti simbolici, i collegamenti simbolici sono memorizzati in un inode . Questo inode è una struttura dati contenente diverse informazioni sul file in questione - come da questo thread, il touch comando può essere utilizzato per modificare alcuni dei suoi valori. Quindi, potrebbe non essere possibile modificarlo utilizzando un editor di testo, a causa dei problemi menzionati da @Wyzard, ma potrebbe essere modificabile utilizzando altri strumenti da riga di comando come touch .

Spero che questo aiuti!


Sì, in Emacs questo è possibile in modalità dired, in particolare in modalità wdired (director scrivibile).

Nota, dired e wdired sono entrambi pacchetti integrati.

Ecco un esempio...

(A proposito:sto usando Smex per dare a Emacs M-x comando di ricerca ed esecuzione di un'interfaccia utente più ergonomica + corrispondenza fuzzy)


Linux
  1. Potenzia il tuo editor di testo del terminale Linux con ed

  2. Editor di testo ViM 101 Guida

  3. Come modificare i file di sistema con l'editor di Kate??

  4. Atom-IDE - Editor di testo Atom su steroidi

  5. Modifica remota con editor locale (Linux)

Come lavorare con Nano Editor su Linux

Guida introduttiva a Nano Text Editor [Guida per principianti]

Come installare i pacchetti in Atom Text Editor

I 7 migliori editor di testo in Linux

Lavorare con l'editor Vim (editor di testo)

Editor di testo/log con supporto per l'aggiornamento automatico