【发布时间】:2015-09-22 23:11:05
【问题描述】:
我重定向(或关闭)标准输出,但 /dev/fd(和 /proc/self/fd)仍然显示标准输出到 tty:
% exec 1>日志
% ls -l /dev/fd/ >/dev/stderr
得到这个
共 0
lrwx------ 1 位客人客人 64 Sep 22 15:31 0 -> /dev/pts/1
l-wx------ 1 位客人客人 64 Sep 22 15:31 1 -> /dev/pts/1
lrwx------ 1 位客人客人 64 Sep 22 15:31 2 -> /dev/pts/1
lr-x------ 1 位客人客人 64 Sep 22 15:31 3 -> /proc/14374/fd/
(ls -l /proc/self/fd/ 打印相同)。
命令
% 日期
不在屏幕上打印日期,但
% 猫日志 > /dev/stderr
2015 年 9 月 22 日星期二 15:59:48 PDT
显示 date 命令的输出已写入 'log'
我可以在 c 程序(或通过 exec 1>&- )中关闭 fd 1 并且 /dev/fd/1 仍然显示它指向我的 tty。有人对此行为有解释吗?
Fedora fc22 4.1.6-201 & Archlinux 版本???在我的树莓派上
【问题讨论】: