跳转到内容
核心概念shell-scripting

Shell 输入输出重定向

理解标准输入、标准输出和标准错误的重定向顺序,安全选择覆盖、追加与错误合并。

状态
已审阅
难度
入门
平台
linux · raspberry-pi-os · busybox

**重定向(redirection)**由 Shell 在命令执行前设置,用于改变标准输入、标准输出或标准错误的来源与去向。

写法 作用
> file 将标准输出写入文件;已有内容会先被截断。
>> file 将标准输出追加到文件末尾。
2> file 将标准错误写入文件。
2>&1 让标准错误指向标准输出当前的目标。
Terminal window
OUTPUT="$HOME/redirection-demo.txt"
printf '%s\n' 'first line' > "$OUTPUT"
printf '%s\n' 'second line' >> "$OUTPUT"
cat -n -- "$OUTPUT"

预期得到两行内容。第一次使用 >,第二次使用 >>

把一组命令的两类输出写入同一日志:

Terminal window
{
date
uname -srmo
} >> "$HOME/system-check.log" 2>&1

重定向从左到右处理:

  • >file 2>&1:标准输出和标准错误都进入 file
  • 2>&1 >file:标准错误先复制原来的标准输出目标,通常不会进入 file

> 会清空已有文件。覆盖前先确认路径;需要保留历史记录时使用 >>,并设置日志轮换或清理策略。