ПСЕВДОКОД
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не содержит пробелов, табуляции или новых строк.)