Linux Shell I/O重定向

来源:互联网 发布:树莓派3 kali linux 编辑:程序博客网 时间:2024/05/18 12:38

linux 文件描述符

linux系统启动后会默认生成3个文件描述符, 标准输入0, 正确输出1和错误输出2,另外3-9是保留的标识符,可以将这些指定成标准输入,输出或者错误.
➜  ~  ls /dev/std* -altlrwxrwxrwx 1 root root 15  5月  5 09:14 /dev/stderr -> /proc/self/fd/2lrwxrwxrwx 1 root root 15  5月  5 09:14 /dev/stdin -> /proc/self/fd/0lrwxrwxrwx 1 root root 15  5月  5 09:14 /dev/stdout -> /proc/self/fd/1

文件描述符可以理解成linux跟踪打开的文件,而数字类似于C 语言的句柄.

重定向

bash使用<和>实现输入输出的重定向. 其中: <相当于0<, > 相当于1>.
shell 在遇到">"操作符首先判断右边的文件是否存在,如果存在先删除再创建新文件. ">>"判断右边文件,若不存在则先创建, 以追加的方式打开文件并分配一个文件描述符(默认为1和2),然后与左边的标准输出和错误输出绑定.

使用文件描述符的重定向

  • cmd >&n    输出重定向到文件描述符n
  • cmd m>&n 输出到m文件的信息重定向到文件描述符n
  • cmd >&-      关闭标准输出
  • cmd <&-      关闭标准输入
0 0
原创粉丝点击