bala@hp:~$ echo "Hello World" > stdout
bala@hp:~$ cat stdout
Hello World
bala@hp:~$ echo "Hello World" > /dev/stdout
Hello World请说明stdout和/dev/stdout之间的区别
注意:
bala@hp:~$ file stdout
stdout: ASCII text
bala@hp:~$ file /dev/stdout
/dev/stdout: symbolic link to `/proc/self/fd/1'请帮助我们了解它们之间的区别。
发布于 2015-06-11 20:32:24
在你的情况下
stdout是一个普通文件,在运行该命令的同一目录中创建。因此,当您将echo的输出重定向到stdout时,它会写入到文件中。您需要执行cat (例如,您在此处执行了)才能在此处查看屏幕上的内容。
/dev/stdout是一个 file,它是到/proc/self/fd/1的链接,这意味着它引用了当前进程持有的文件描述符1。因此,当您将echo的输出重定向到/dev/stdout时,它会被直接发送到标准输出(屏幕)。
发布于 2015-06-11 20:32:32
一个是普通文件,与任何其他普通文件如~/foobar.txt没有什么不同。
另一个是一个符号链接(类似于您可以使用ln -s创建的链接),它指向一个特殊的虚拟文件,表示当前进程中的文件描述符1。
https://stackoverflow.com/questions/30780780
复制相似问题