Pseudocode
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
Hier möchte ich einen Symlink von der Quelle zu zwei Zielen erstellen. Wahrscheinlich moreutils
und pee
.
Wie können Sie viele Symlinks aus einer Quelle erstellen?
Pseudocode
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
Hier möchte ich einen Symlink von der Quelle zu zwei Zielen erstellen. Wahrscheinlich moreutils
und pee
.
Wie können Sie viele Symlinks aus einer Quelle erstellen?
Antworten:
Sie können dies nicht mit einem einzigen Aufruf von tun ln
, aber Sie können alle erforderlichen Ziele durchlaufen:
$ for i in "$HOME/Documents/" "$HOME/Desktop/"; do ln -s "$HOME/file" "$i"; done
Wenn Sie haben gnu parallel
, könnten Sie es versuchen
parallel ln -s /path/file {} ::: /path/dest1 /path/dest2 /path/dest3
oder um mehrere Ziele mit (demselben) mehreren Zielen zu verknüpfen
parallel ln -s {1} {2} ::: /path/file1 /path/file2 ::: /path/dest1 /path/dest2
parallel
Befehl vom parallel
Paket aus ausführen und nicht von moreutils
.
Es ist nicht weniger ausführlich als zwei separate ln -s
Aufrufe:
echo $HOME/Documents/ $HOME/Desktop/ | xargs -n 1 ln -s $HOME/file
Dies funktioniert jedoch nur für absolute Pfade (da symbolische Links relativ zu ihrem übergeordneten Verzeichnis interpretiert werden, sofern sie nicht absolut sind).
(Die relativen Kosten sinken natürlich mit steigender Anzahl von Links. Außerdem $HOME
basiert dieses Snippet auf der Tatsache, dass es keine Leerzeichen, Tabulatoren oder Zeilenumbrüche enthält.)