mvd*_*vds 6

是的你可以.但是,如果它与它有关,那就取决于该程序.

$ cat fd.c 
int main()
{
    write(5,"test\n",5);
}
$ gcc fd.c
$ ./a.out 5> file
$ cat file
test
$ ./a.out 5>&1
test
$ ./a.out 
$ 
Run Code Online (Sandbox Code Playgroud)

在最后一种情况下,fd 5的输出消失了.

openssl使用它来允许密码短语等传递给流程而不使用常规argv(可能会暴露它们).

更新输入案例:

$ cat fd_in.c 
int main()
{
    unsigned char buf[16];
    write(5,buf,read(6,buf,16));
}
$ gcc fd_in.c 
$ ./a.out 6< file 5>&1
test
Run Code Online (Sandbox Code Playgroud)

(file包含test\n在上一个例子中)