以下命令有何区别?
ssh myhostname "command1; command2;...commandn;" 2>/dev/null
ssh myhostname "command1; command2;...commandn;"
2>
是什么意思?/dev/null
是什么意思?我在某个地方读到说命令的结果将被写入文件/dev/null
而不是控制台!这是正确的吗?对我来说,文件名为null
好奇怪!
2>
的意思是将“标准错误输出”重定向到给定的文件。
/dev/null
是空文件,任何写入其中的内容都会被丢弃。
它们合在一起的意思是“丢弃所有的错误信息”。
1代表标准输出(stdout),2代表标准错误(stderr)。
有时你会看到2>&1
,这意味着将标准错误输出重定向到标准输出。
/dev/null
实际上表示“被丢弃到虚空中”。你提到的2
是指错误输出,应该将其定向到此处。
2> 表示将标准错误发送到某个地方
/dev/null 是一个垃圾桶
1) 将所有标准错误信息重定向到 /dev/null(忽略并不显示)
2) /dev/null 只是指向一个不存在的地方,将任何东西重定向到那里,它就会消失。
man bash
是一篇有趣的阅读材料。/dev/null
是一个特殊的文件,它充当黑洞的作用;它不占用任何磁盘空间,因为放入其中的所有内容都会被丢弃。