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. 追加>> 适用于日志累积,可以避免历史数据丢失
相关推荐
程序猿编码40 分钟前
一个授予普通进程ROOT权限的Linux内核级后门:原理与实现深度解析
linux·运维·服务器·内核·root权限
小夏子_riotous44 分钟前
openstack的使用——9. 密钥管理服务Barbican
linux·运维·服务器·系统架构·centos·云计算·openstack
梦想的旅途21 小时前
自动化运营如何防封?解析 API 协议下的拟人化风控算法
运维·自动化
六点的晨曦2 小时前
VMware安装Ubuntu的记录
linux·ubuntu
AC赳赳老秦2 小时前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
w6100104662 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
andeyeluguo2 小时前
docker总结
运维·docker·容器
w6100104662 小时前
cka-2026-etcd
运维·服务器·etcd·cka
HXQ_晴天3 小时前
castor什么时候已有的 .cdh 数据可以直接用,不需要重新从 root 转换?
linux
航Hang*3 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化