I wrote this script some months ago, and now rereading it, I'm unable to decipher what I meant by this line:
sudo rsync -xPRSaz --rsync-path='sudo rsync' maeve@macbook:/ macbook/ 3>&1 1>&2 2>&3 | tee macbook.log
I can't find any special treatment of file descriptor 3 for sudo
, rsync
or tee
. After the redirects I'm currently guessing this is the situation:
now fd points to old fd
0 --> 0
1 --> 2
2 --> 1
3 --> 1
sudo
, or to rsync
, and to what end?Your guess is right. It's a rather nifty trick to swap standard output and standard error. To answer your questions:
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.