Pseudo-código
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
onde eu quero criar um link simbólico da fonte para dois destinos. Provavelmente moreutils
e pee
.
Como você pode criar muitos links simbólicos de uma fonte?
Pseudo-código
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
onde eu quero criar um link simbólico da fonte para dois destinos. Provavelmente moreutils
e pee
.
Como você pode criar muitos links simbólicos de uma fonte?
Respostas:
Você não pode fazer isso com uma única chamada de ln
, mas pode percorrer todos os destinos necessários:
$ for i in "$HOME/Documents/" "$HOME/Desktop/"; do ln -s "$HOME/file" "$i"; done
Se tiver, gnu parallel
você pode tentar com
parallel ln -s /path/file {} ::: /path/dest1 /path/dest2 /path/dest3
ou, para vincular vários destinos a (o mesmo) vários destinos
parallel ln -s {1} {2} ::: /path/file1 /path/file2 ::: /path/dest1 /path/dest2
parallel
comando no parallel
pacote e não no moreutils
.
Não é menos detalhado do que duas ln -s
invocações separadas :
echo $HOME/Documents/ $HOME/Desktop/ | xargs -n 1 ln -s $HOME/file
mas isso funciona apenas para caminhos absolutos (porque os links simbólicos são interpretados em relação ao diretório pai, a menos que sejam absolutos).
(O custo relativo diminui, é claro, à medida que o número de links aumenta. Além disso, esse trecho depende do fato de que $HOME
não contém espaços, guias ou novas linhas.)