Перенаправить все вывод сценария bash (изнутри скрипта) в два файла: один append, one rewrite; но отбрасывать вывод на консоль

Я могу легко перенаправить как стандартный, так и ошибочный вывод сценария bash в файл, отбрасывая вывод на консоль с помощью простого оператора exec :

 exec &>>/var/log/backup.log 

Но как я могу использовать exec для записи в два файла, добавляя сначала и переписывая второй? Вероятно, нужно использовать магию tee . Также нужно найти способ отключения звука консоли.

Причина этого – резервный сценарий. Я хочу добавить к основному журналу события последнего резервного копирования и просто записать только эти события в текущий журнал резервного копирования (очистка его предыдущего содержимого), который должен быть перезаписан для каждого сеанса резервного копирования.

Это можно сделать, вам нужна замена процесса. Перенаправить потоки в подпроцесс, который вызывает tee и перенаправляет остальные в перезаписанный файл.

 exec &> >(tee -a backup.log > overwritten.log) 

Обратите внимание, что это будет перезаписывать файл только один раз во всем скрипте, потому что поток остается открытым до выхода скрипта или другого перенаправления.