Можно ли создать символическую ссылку для файла на несколько целей в bash?

Можно ли создать символическую ссылку для файла на несколько целей в bash?

Я хочу создать символическую ссылку на файл (например, /var/log/cron/cron.log), которая будет иметь символическую ссылку как на , так /proc/1/fd/2и на /proc/1/fd/1.

Это возможно?

решение1

Нет, он может указывать только на одну цель. Поскольку ссылка указывает на определенный inode на цели, только один может существовать в один момент времени

решение2

Кевинуже ответил на букву вопроса, попробую ответить на дух. Если вы хотите писать в два файла одновременно (предполагая, что один из них не является жесткой/символической ссылкой на другой), вы можете использоватьименованные каналыи teeкоманда для дублирования вывода:

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

будет "Hello world!"написано обоим a.txtиb.txt . Однакотройниквыйдет после первой записи.

Поскольку в вашем примере вы используете файл журнала, более стабильным решением будет настройкаrsyslogdчтобы отправить все cronсообщения в несколько файлов:

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

Связанный контент