Redirecting file descriptor 3 with tee Redirecting file descriptor 3 with tee unix unix

Redirecting file descriptor 3 with tee


Your guess is right. It's a rather nifty trick to swap standard output and standard error. To answer your questions:

  • these redirections are captured by the shell so they apply to that portion of the pipeline (which is sudo). The sudo process itself will detect all the arguments and pass them along to its subcommand (rsync) but the redirections have been captured and acted upon before that point: sudo never sees them.
  • File handle 3 is not left hanging. It will be closed when the process ends.


Note that the dangling file descriptor 3 can be closed with 3>&-, here's the full line with that included:

sudo rsync -xPRSaz --rsync-path='sudo rsync' maeve@macbook:/ macbook/ 3>&1 1>&2 \2>&3 3>&- | tee macbook.log