linux基础重定向及组合重定向
一、基础重定向操作符
类别 | 操作符 | 含义 | 示例 | 备注 |
标准输出 |
| 覆盖写入 stdout 到文件 |
| 文件不存在则创建,存在则清空内容 |
| 追加 stdout 到文件末尾 |
| 保留原有内容 | |
标准错误 |
| 覆盖写入 stderr 到文件 |
| 仅捕获错误信息 |
| 追加 stderr 到文件末尾 |
| 错误日志持续累积 | |
输入重定向 |
| 从文件读取 stdin |
| 替代键盘输入 |
| 多行输入(Here Document) |
| 自定义结束标记 |
二、组合重定向技巧
类别 | 操作符/组合 | 含义 | 示例 | 备注 |
流合并 |
| 合并stdout和stderr到同一文件 |
| 简写形式(新版 Bash 支持) |
| 将stderr合并到stdout流 |
| 顺序敏感(必须写在普通重定向后) | |
流分离 |
| 分离stdout和stderr |
| 独立记录两种输出类型 |
管道结合 |
| 过滤错误后传递有效输出 |
| 丢弃错误信息以提高管道效率 |
黑洞设备 |
| 丢弃所有输出 |
| 常用于后台静默执行 |
关键注意事项:
- 操作符顺序:合并操作
2>&1
必须写在普通重定向之后,否则无法生效 - 覆盖风险:
>
会直接覆盖文件内容,敏感操作建议先备份 - 追加:
>>
适用于日志累积,可以避免历史数据丢失