Перенаправление нескольких текстовых потоков
10.3.3 Перенаправление нескольких текстовых потоков
Одновременно можно управлять как STDOUT, так и STDERR команды. Следующая команда создает как STDOUT, так и STDERR, поскольку один из указанных каталогов существует, а другой нет:
sysadmin@localhost:~$ ls /fake /etc/ppp
ls: cannot access /fake: No such file or directory
/etc/ppp:
ip-down.d ip-up.d
Если в файл отправляется только STDOUT, STDERR все равно выводится на экран:
sysadmin@localhost:~$ ls /fake /etc/ppp > example.txt
ls: cannot access /fake: No such file or directory
sysadmin@localhost:~$ cat example.txt
/etc/ppp:
ip-down.d
ip-up.d
Если в файл отправляется только STDERR, STDOUT все равно выводится на экран:
sysadmin@localhost:~$ ls /fake /etc/ppp 2> error.txt
/etc/ppp:
ip-down.d
ip-up.d
sysadmin@localhost:~$ cat error.txt
ls: cannot access /fake: No such file or directory
И STDOUT, и STDERR можно отправить в файл, используя &
символ амперсанда перед >
символом стрелки. Набор &>
символов означает 1>
и , и 2>
:
sysadmin@localhost:~$ ls /fake /etc/ppp &> all.txt
sysadmin@localhost:~$ cat all.txt
ls: cannot access /fake: No such file or directory
/etc/ppp:
ip-down.d
ip-up.d
Обратите внимание, что при использовании &>
выходные данные отображаются в файле со всеми сообщениями STDERR вверху и всеми сообщениями STDOUT под всеми сообщениями STDERR:
sysadmin@localhost:~$ ls /fake /etc/ppp /junk /etc/sound &> all.txt
sysadmin@localhost:~$ cat all.txt
ls: cannot access '/fake': No such file or directory
ls: cannot access '/junk': No such file or directory
ls: cannot access '/etc/sound': No such file or directory
/etc/ppp:
ip-down.d
ip-up.d
Если вы не хотите, чтобы STDERR и STDOUT направлялись к одному и тому же файлу, их можно перенаправить в разные файлы с помощью обоих >
и 2>
. Например, чтобы указать STDOUT example.txt
и STDERR error.txt
выполнить следующее:
sysadmin@localhost:~$ ls /fake /etc/ppp > example.txt 2> error.txt
sysadmin@localhost:~$ cat error.txt
ls: cannot access /fake: No such file or directory
sysadmin@localhost:~$ cat example.txt
/etc/ppp:
ip-down.d
ip-up.d
Last updated