linux - order of 2>&1 when redirecting std error to file -
i'm seeing different formats redirecting std output file :
a. command 1&2>output.txt b. command >output.txt 2>&1 c. command 2>&1>output.txt d. command &>output.txt is there difference between these? if 2>&1 placed @ end (b) , how redirect stderr of first command ?
yes. order matters. > may bring idea of pointing , pointers/references , word "redirect", fd redirections more assignments. is, if
exec 2>&1 1>output.txt
it "assign" current "value" (the actual file opened file descriptor) of file descriptor 1 file descriptor 2 , open output.txt , assign file descriptor 1.
what won't point &2 (read & "file descriptor") &1. won't make accessing &2 query &1. file descriptor ever associated actual file, never file descriptor. 2>&1 associates file opened under &1 &2. doesn't redirect &2 &1 in sense writing &2 make write &1 associated @ moment. &1 can later reopened different file associated @ time of 2>&1 redirection, won't affect &2 writes to.
check out dup2(2) if want know how functionality exposed @ system call level.
Comments
Post a Comment