[Comm] перенаправление вывода в лог
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пт Окт 25 19:34:30 MSD 2002
On Fri, 25 Oct 2002 23:09:08 +0800
Sinom <sinom на ktk.ru> wrote:
> -----------------
> ls > dirlist 2>&1
> перенаправляет оба стандартный вывод и стандартный поток ошибок в файл
> "dirlist", тогда как команда
>
> ls 2>&1 > dirlist
>
> направляет только втандартный вывод в файл "dirlist", потому что
> стандартный поток ошибок был дублирован как стандартный вывод перед
> стандартным выводом был перенаправлен в "dirlist".
> -----------------
>
> Перевести то я перевел, но понять не могу. :-( Пожалуйста, объясните ещё
> раз, почему эти комманды приводят к различным результатам.
Перенаправления обрабатываются слева направо. Конструкция вида "2>&1" на
самом деле создает копию файлового дескриптора 1 и заменяет дескриптор 2
этой копией; последующие перенаправления исходного дескриптора не влияют
на его копии. В первом случае сначала дескриптор 1 (stdout)
перенаправляется, а потом создается его копия в stderr. Во втором случае
сначала создается копия, а потом перенаправляется только дескриптор 1.
Подробная информация о списке рассылки community