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. 追加>> 适用于日志累积,可以避免历史数据丢失
相关推荐
第四维度41 分钟前
【Debian】4-‌2 Gitea搭建
运维·debian·gitea
程序员的世界你不懂3 分钟前
Jmeter 命令行压测、HTML 报告、Jenkins 配置目录
运维·jmeter·jenkins
Sadsvit11 分钟前
Linux 时钟同步配置:基础管理与 chrony 工具应用
linux·运维·chrome
YuTaoShao36 分钟前
【LeetCode 热题 100】20. 有效的括号
java·linux·数据库·leetcode
hello 早上好1 小时前
负载均衡、算法/策略
运维·算法·负载均衡
林开落L2 小时前
进程控制:从创建到终结的完整指南
linux·性能优化·进程控制
21号 12 小时前
10. NAT,代理服务,内网穿透
linux·服务器·网络
一匹电信狗2 小时前
【Linux我做主】进程优先级
linux·运维·服务器·c++·ubuntu·小程序·unix
一只小松许️6 小时前
Linux性能分析与内存调试:perf和Valgrind高级使用指南
linux
巴里巴气7 小时前
zookeeper基本概念介绍
linux·分布式·zookeeper