[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