使用 > 或 >> 时,默认为标准输出 1 重定向, 所以 > file 就是 1> file 的省写,1 与 > 之间不能有空格。
比如ls -l > a.txt
就是ls -l 1> a.txt
数字 0, 1, 2 与它后面的操作符 > 或 < 等 总是一个整体
2>&1
表示把 标准错误输出 重定向到 标准输出, 这在控制台下看到的效果 2>&1 和 1>&2 可能是一样的,因为标准输出或标准错误输出的目的地默认都为屏幕。
2>&1
是最常见到的写,这样就是把错误信息与标准输出都收集到一块了
&> file
表示把 标准输出 和 标准错误输出 都重定向到文件 file 中
>& file
把标准输出和标准错误输出都重定向到文件 file, 由于 > 默认为重定向标准输出,所以和 1>& file 是一个意思
以上 &> file
和 >& file
也较少见,我还不没能理解上边两个中那个光杆子 & 是什么含义