linux中用>覆盖写入、>>追加写入文件;可分离重定向stdout(1)和stderr(2),如1>out 2>err;也可合并为&>log或>/dev/null静默忽略错误。

Linux 中用重定向把命令输出写入文件,核心就是控制标准输出(stdout)的流向,主要靠 > 和 >> 这两个符号。
覆盖写入:用 > 把输出存进文件
执行命令后,原本该显示在终端的内容,会全部写进指定文件里。如果文件已存在,内容会被清空重写;不存在就自动创建。
- ls -l /home > home_list.txt —— 把/home目录下的详细列表保存到 home_list.txt,旧内容全丢
- date > now.txt —— 把当前时间写入 now.txt,每次运行都只保留最新一次的时间
追加写入:用 >> 把输出加到文件末尾
适合记录日志、累积结果等场景,不会破坏已有内容,新输出总是在最后新增一行。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- echo "Backup completed at $(date)" >> backup.log —— 每次备份完都追加一条记录
- ps aux | grep nginx >> process_check.txt —— 多次检查后,所有匹配结果都保留在同一个文件里
区分正常输出和错误信息
命令运行可能成功(stdout,fd 1)也可能报错(stderr,fd 2),可以分开保存:
- gcc main.c -o main 1>compile.out 2>compile.err —— 正常编译信息进 out,报错进 err
- gcc main.c -o main >build.log 2>&1 —— 把错误也合并进 build.log(先重定向 stdout,再让 stderr 跟着它走)
- gcc main.c -o main &>build.log —— 更简洁的写法,效果同上
忽略错误或静默执行
有些时候你只关心结果,不想看到报错提示,可以把它“扔进黑洞”:
- rm unknown_file 2>/dev/null —— 删除不存在的文件时不显示“No such file”提示
- ping -c1 google.com >/dev/null 2>&1 —— 完全静默,既不显示成功信息也不显示失败信息










