Перенаправить вывод команды в два разных файла

Перенаправить вывод команды в два разных файла

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

Пример:

ls > pk.txt 

Теперь необходимо создать еще один файл с именем praveen.

решение1

Используйте tee(1)для записи в два файла и сброса stdout:

ls | tee pk.txt praveen >/dev/null

Редактировать2:Как отметили Стефан и Томас, из-за особенностей teeработы эта версия является лучшей и приводит к меньшему количеству записей:

ls | tee pk.txt > praveen

решение2

С zsh:

ls > file1 > file2

(внутренне zshсоздает канал и порождает процесс, который считывает данные из этого канала и записывает их в два файла, как и teeположено. lsstdout — это другой конец канала).

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