几个月前我写了这个剧本,现在再读一遍,我无法理解这句话的意思:
sudo rsync -xPRSaz --rsync-path='sudo rsync' maeve@macbook:/ macbook/ 3>&1 1>&2 2>&3 | tee macbook.log我找不到对sudo、rsync或tee的文件描述符3的任何特殊处理。在重定向之后,我目前猜测情况如下:
now fd points to old fd
0 --> 0
1 --> 2
2 --> 1
3 --> 1sudo,还是应用于rsync,以及到什么目的?。
发布于 2011-02-16 03:44:15
你猜得对。交换标准输出和标准错误是一个相当巧妙的技巧。回答你的问题:
,
sudo)。sudo进程本身将检测所有参数并将它们传递给它的子命令(rsync),但是重定向在此之前已经捕获并执行:sudo从未看到它们。发布于 2011-02-21 14:19:26
请注意,悬空文件描述符3可以与3>&-一起关闭,下面是包含以下内容的完整行:
sudo rsync -xPRSaz --rsync-path='sudo rsync' maeve@macbook:/ macbook/ 3>&1 1>&2 \
2>&3 3>&- | tee macbook.loghttps://stackoverflow.com/questions/5012280
复制相似问题