擬似コード
ln -s $HOME/file $HOME/Documents/ $HOME/Desktop/
その中で、ソースから両方のターゲットへのシンボリックリンクを作成したいと思います。そうかもしれないしmoreutils
、pee
。
1つのソースから複数のシンボリックリンクを作成するには?
答え1
単一の呼び出しではこれを行うことはできませんが、必要ln
なすべての宛先を繰り返すことはできます。
$ for i in "$HOME/Documents/" "$HOME/Desktop/"; do ln -s "$HOME/file" "$i"; done
答え2
あれば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
答え3
2 回の個別の呼び出しよりもln -s
冗長ではありません。
echo $HOME/Documents/ $HOME/Desktop/ | xargs -n 1 ln -s $HOME/file
ただし、これは絶対パスでのみ機能します(シンボリックリンクは絶対パスではなく、親ディレクトリに基づいて解釈されるためです)。
(もちろん、リンク数が増えるにつれて、相対的なコストは低くなります。また、このコードスニペットは、$HOME
スペース、タブ、または改行が含まれていないという事実に依存します。)