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. 追加>> 适用于日志累积,可以避免历史数据丢失
相关推荐
星纬智联技术39 分钟前
GEO E2E 自动化验证测试文章
运维·自动化·geo
天赐学c语言1 小时前
Linux - 应用层自定义协议与序列/反序列化
linux·服务器·网络·c++
jarreyer1 小时前
CentOS 7 无法使用 yum 安装软件
linux·运维·centos
脆皮的饭桶1 小时前
结合使用,实现IPVS的高可用性、利用VRRP Script 实现全能高可用
运维·服务器·网络
薛定谔的悦2 小时前
告别传统BMS!深度解读阳光电源 BM^2T 电池管理技术白皮书
linux·能源·储能·bms·ems
源远流长jerry2 小时前
DPDK MP (Multi-Process) 通道深度解析
linux·网络·架构·ip
RisunJan2 小时前
Linux命令-md5sum(计算和校验文件报文摘要的工具程序)
linux·运维
抹茶咖啡2 小时前
IT运维的365天--042 骚操作之--用IPSec给远程桌面上把锁
运维·网络·it运维
王琦03183 小时前
第三章 linux文件类型和根目录结构
linux·运维·服务器
minji...3 小时前
Linux 文件系统 (三) 软连接和硬链接
linux·运维·服务器·c++·算法