linux基础重定向及组合重定向

一、基础重定向操作符

|-------------|-----------|---------------------|----------------------------|------------------|
| ‌类别‌ | ‌操作符‌ | ‌含义‌ | ‌示例‌ | ‌备注‌ |
| ‌标准输出‌ | > | 覆盖写入 stdout 到文件 | ls > file.txt | 文件不存在则创建,存在则清空内容 |
| | >> | 追加 stdout 到文件末尾 | date >> log.txt | 保留原有内容 |
| ‌标准错误‌ | 2> | 覆盖写入 stderr 到文件 | rm not_exist 2> err.log | 仅捕获错误信息 |
| | 2>> | 追加 stderr 到文件末尾 | make 2>> err.log | 错误日志持续累积 |
| ‌输入重定向‌ | < | 从文件读取 stdin | sort < data.txt | 替代键盘输入 |
| | << | 多行输入(Here Document) | cat << EOF ... EOF | 自定义结束标记 |

二、组合重定向技巧

|------------|-----------------|----------------------|-------------------------------------------|------------------|
| ‌类别‌ | ‌操作符/组合‌ | ‌含义‌ | ‌示例‌ | ‌备注‌ |
| ‌流合并‌ | &>&>> | 合并stdout和stderr到同一文件 | sh script.sh &> command.log | 简写形式(新版 Bash 支持) |
| | 2>&1 | 将stderr合并到stdout流 | sh script.sh > command.log 2>&1 | 顺序敏感(必须写在普通重定向后) |
| ‌流分离‌ | > file 2> err | 分离stdout和stderr | python app.py > out.log 2> err.log | 独立记录两种输出类型 |
| ‌管道结合‌ | | + 2> | 过滤错误后传递有效输出 | grep "error" syslog 2>/dev/null | wc -l | 丢弃错误信息以提高管道效率 |
| ‌黑洞设备‌ | >/dev/null | 丢弃所有输出 | nohup ./start.sh >/dev/null 2>&1 & | 常用于后台静默执行 |

关键注意事项:
  1. 操作符顺序 ‌:合并操作 2>&1 必须写在普通重定向之后,否则无法生效
  2. 覆盖风险 ‌:> 会直接覆盖文件内容,敏感操作建议先备份
  3. 追加>> 适用于日志累积,可以避免历史数据丢失
相关推荐
猪脚踏浪25 分钟前
linux 拷贝文件或目录到指定的位置
linux
大树8816 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠16 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质17 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush417 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52017 小时前
Linux 11 动态监控指令top
linux
Inhand陈工18 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智18 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩18 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_18 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化