bash で複数のターゲットへのファイルのシンボリックリンクを作成できますか?

bash で複数のターゲットへのファイルのシンボリックリンクを作成できますか?

/var/log/cron/cron.logの両方へのシンボリックリンクを持つファイル (例: ) のシンボリックリンクを作成したいと考えています。/proc/1/fd/2/proc/1/fd/1

これは可能ですか?

答え1

いいえ、リンクは1つのターゲットのみを指すことができます。リンクはターゲット上の特定のinodeを指すため、一度に存在できるのは1つだけです。

答え2

ケビン質問の文面については既に回答済みですが、私はその精神について回答してみます。2つのファイルに同時に書き込みたい場合(一方が他方へのハードリンク/シンボリックリンクではないと仮定)、次のように使用できます。名前付きパイプ出力を複製するコマンドtee:

mkfifo dup.txt
tee -a a.txt >> b.txt < dup.txt &
echo "Hello world!" >> dup.txt

"Hello world!"の両方に書き込まれます。ただし、a.txtb.txtティー最初の書き込み後に終了します。

あなたの例ではログファイルを使用しているので、より安定した解決策は、rsyslogdcronすべてのメッセージを複数のファイルに送信するには:

cron.* -/var/log/cron/cron.log
cron.* -/var/log/another-file.log

関連情報