Es ist nicht direkt möglich, wie andere bereits darauf hingewiesen haben, aber Sie können natürlich ein Skript dafür schreiben. Hier ist eine, die ich mir ausgedacht habe, als ich viele Symlinks ändern musste
#! /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)
Es hat für mich funktioniert, aber es ist sicherlich nicht perfekt, also verwenden Sie es auf eigene Gefahr ...
Es ist im Prinzip möglich, aber der Editor müsste es speziell unterstützen, da das Lesen des Ziels eines Symlinks einen speziellen Systemaufruf erfordert:readlink()
.
Es ist unwahrscheinlich, dass Sie Editoren finden, die dies tatsächlich tun, da es nicht sehr nützlich ist und im Widerspruch zu dem steht, was die meisten Benutzer vom Editor erwarten, wenn er aufgefordert wird, einen Symlink zu öffnen:die Datei öffnen, auf die er zeigt.
Gemäß der Speicherung symbolischer Links Abschnitt im Wikipedia-Artikel Symbolische Links werden die Symlinks in einem Inode gespeichert . Dieser Inode ist eine Datenstruktur, die mehrere Informationen über die fragliche Datei enthält - laut diesem Thread der touch
Der Befehl kann verwendet werden, um einige seiner Werte zu ändern. Daher ist es aufgrund der von @Wyzard erwähnten Probleme möglicherweise nicht möglich, es mit einem Texteditor zu ändern, aber es kann mit einigen anderen Befehlszeilentools wie touch
geändert werden .
Ich hoffe, das hilft!
Ja, in Emacs ist dies im Dired-Modus möglich, insbesondere im wdired (writable dired)-Modus.
Beachten Sie, dass sowohl dired als auch wdired eingebaute Pakete sind.
Hier ist ein Beispiel...
(Übrigens:Ich verwende Smex, um Emacs M-x
zu geben Befehlssuche &Ausführen einer ergonomischeren Benutzeroberfläche + Fuzzy-Matching)