管道与重定向:0/1/2 三个流怎么走

重点看三组现象:> f 2>&1 与 2>&1 > f 的区别、xargs 的空格陷阱、后台任务与 nohup。

deploy@server:/srv/app

重定向写法对照

cmd > out            stdout 覆盖写文件
cmd >> out           stdout 追加(日志必备)
cmd 2> err           只有 stderr 进文件
cmd > out 2>&1       两者都进同一个文件(顺序不能反)
cmd 2>&1 > out       stderr 去了终端,stdout 才进文件(经典坑)
cmd &> out           bash 简写,等价上一行的正确版本;POSIX sh 里没有
cmd > /dev/null 2>&1 全部丢掉(cron 里让任务安静)

以上输出是真实命令结果的整理样本,用来观察字段含义;换一台发行版或版本,数值与顺序会变。