几个月前我写了这个脚本,现在重新阅读时,我无法解释我所写的这行代码的意思:
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 --> 1
- 这些重定向是应用于
sudo
还是rsync
,以及有什么目的? - 文件描述符3是否被保持未关闭或以任何“不良”方式挂起?
bash
中有一种方法可以“移动”文件描述符(而不是复制它),这会关闭原始文件描述符。所以你可能可以使用这个方法来关闭文件句柄3。我从未尝试过(因为我从未有过这个需求),但是请在bash
的手册中搜索“移动文件描述符”。 - paxdiablo