重定向

在Linux系统中0 1 2是一个文件描述符
名称                                代码            操作符                      Java中表示               Linux 下文件描述符(Debian 为例)
标准输入(stdin)                0             < 或 <<                         System.in                 /dev/stdin -> /proc/self/fd/0 -> /dev/pts/0
标准输出(stdout)             1             >, >>, 1> 或 1>>           System.out               /dev/stdout -> /proc/self/fd/1 -> /dev/pts/0
标准错误输出(stderr)       2            2> 或 2>>                      System.err               /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0
 
关于2>&1的含义
>log 2>&1 &顺序不能反
我们不妨把1和2都理解是一个指针,然后来看上面的语句就是这样的:
  1. 本来1----->屏幕 (1指向屏幕)
  2. 执行>log后, 1----->log (1指向log)
  3. 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)
符号>&是一个整体,不可分开,分开后就不是上述含义了。
 
每次都写">log 2>&1"太麻烦,能简写吗?
有以下两种简写方式
&>log
>&log

posted @ 2020-11-12 19:41  盲仔不瞎忙  阅读(32)  评论(0编辑  收藏  举报