shell:>& 、& >、2>一、2>&1

  1. 这里的&没有固定的意思

放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,内置的文件描述符以下.net

1 => stdout 2 => stderr 0 => stdinblog

换言之 2>1 表明将stderr重定向到当前路径下文件名为1的regular file中,而2>&1表明将stderr重定向到文件描述符为1的文件(即/dev/stdout)中,这个文件就是stdout在file system中的映射get

而&>file是一种特殊的用法,也能够写成>&file,两者的意思彻底相同,都等价于it

file 2>&1file

此处&>或者>&视做总体,分开没有单独的含义command

  1. /dev/null 文件

若是但愿执行某个命令,但又不但愿在屏幕上显示输出结果,那么能够将输出重定向到 /dev/null:文件读取

$ command > /dev/nullqq

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;若是尝试从该文件读取内容,那么什么也读不到。可是 /dev/null 文件很是有用,将命令的输出重定向到它,会起到"禁止输出"的效果。重定向

若是但愿屏蔽 stdout 和 stderr,能够这样写:di

$ command > /dev/null 2>&1

  1. 关于 exec
相关文章
相关标签/搜索