: 覆盖
    >>: 追加

    ls >/dev/null 2>&1 相当于 ls 1>/dev/null 2>&1
    数字和>之间不能有空格
    0:表示键盘输入(stdin)
    1:表示标准输出(stdout),系统默认是1
    2:表示错误输出(stderr)

    所以1> /dev/null 2>&1表示将1(标准输出)重定向到/dev/null文件,将2(标准错误输出)重定向到1。2>&1表示的是2的输出重定向等同于1 的输出重定向,也就是/dev/null文件。如果写成这种形式:

    ls 1>/dev/null 2>1
    ll &> /dev/null 混合输出
    其实也能实现标准错误输出的重定向,但是重定向的位置不是标准输出,而是文件“1”,系统会创建一个文件“1”然后保存标准错误输出的信息。

    1. 和 < 分别代表重定向的方向,是从左到右还是从右到左
      2. >> 和 << 代表追加,也就是不改变重定向目标文件原有的内容,追加在后面。
      3. >&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;
      4. <&n 标准输入复制自文件描述符 n;
      5. n<&- 表示将 n 号输入 关闭
      6. <&- 表示关闭标准输入(键盘)
      7. n>&- 表示将 n 号输出关闭
      8. >&- 表示将标准输出关闭