You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何组合Unix输入输出重定向?rsync命令输出重定向方法

解决方案

你要的效果其实很容易实现,只需要在保留原有输入重定向的基础上,追加输出重定向的规则就好。这里给你两种常用的写法,按需选择:

写法一:兼容所有shell的标准写法

rsync -a path postgres@12.19.232.116:/home/postgres/data/wals < /dev/null > output.log 2>&1

写法二:bash/zsh等现代shell的简化写法

rsync -a path postgres@12.19.232.116:/home/postgres/data/wals < /dev/null &> output.log

简单解释下各部分作用:

  • < /dev/null:完全保留你原来的需求,让rsync不从标准输入读取任何内容,避免它卡在等待用户输入的状态(比如需要交互式确认的场景)。
  • > output.log:把命令的标准输出(正常的执行日志、进度信息等)写入到output.log文件。
  • 2>&1:把命令的标准错误(报错信息、警告提示等)重定向到和标准输出相同的位置,这样所有输出都会被统一记录到日志里,不会有错误信息漏到屏幕上。
  • &>是bash等现代shell提供的简化语法,和> output.log 2>&1的效果完全一致,写起来更省事。

如果只写> output.log而不加2>&1,那只有正常输出会进入日志,错误信息还是会打印到终端,所以一般建议把两种输出都捕获到日志文件里。

内容的提问来源于stack exchange,提问作者Henley Wing Chiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:02:09