ПСЕВДОКОД
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
где я хочу создать символическую ссылку от источника до двух мест назначения. Возможно, moreutils
и pee
.
Как вы можете создать много символических ссылок из одного источника?
ПСЕВДОКОД
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
где я хочу создать символическую ссылку от источника до двух мест назначения. Возможно, moreutils
и pee
.
Как вы можете создать много символических ссылок из одного источника?
Ответы:
Вы не можете сделать это с помощью одного вызова ln
, но вы можете перебрать все необходимые пункты назначения:
$ for i in "$HOME/Documents/" "$HOME/Desktop/"; do ln -s "$HOME/file" "$i"; done
Если у вас есть, gnu parallel
вы можете попробовать с
parallel ln -s /path/file {} ::: /path/dest1 /path/dest2 /path/dest3
или, чтобы объединить несколько целей в одно и то же место
parallel ln -s {1} {2} ::: /path/file1 /path/file2 ::: /path/dest1 /path/dest2
parallel
команду из parallel
пакета, а не из moreutils
.
Это не менее многословно, чем два отдельных ln -s
вызова:
echo $HOME/Documents/ $HOME/Desktop/ | xargs -n 1 ln -s $HOME/file
но это работает только для абсолютных путей (потому что символические ссылки интерпретируются относительно их родительского каталога, если они не являются абсолютными).
(Относительная стоимость снижается, конечно, с увеличением количества ссылок. Кроме того, этот фрагмент основан на том факте, что $HOME
не содержит пробелов, табуляции или новых строк.)