重定向是 Linux 系统中用于控制命令输入/输出流向的机制,> 和 >> 是最常用的输出重定向符号,用于将命令的标准输出(stdout)写入文件,而非显示在终端屏幕上。
>:覆盖式重定向,将命令输出写入指定文件,若文件已存在则清空原有内容后写入。>>:追加式重定向,将命令输出写入指定文件,若文件已存在则在原有内容末尾追加,文件不存在则创建。
# 覆盖式重定向语法
命令 [选项] <参数> > <目标文件>
# 追加式重定向语法
命令 [选项] <参数> >> <目标文件>符号特性与区别
参考示例
示例1:用覆盖重定向生成新文件 执行
echo "Hello, Linux" > greeting.txt,将字符串Hello, Linux写入greeting.txt,若文件已存在则原有内容被替换。示例2:用追加重定向累计内容 执行
echo "Today is $(date)" >> diary.txt,将当前日期追加到diary.txt末尾,保留文件原有内容。示例3:保存命令输出到文件 执行
ls -l /home > home_files.txt,将/home目录的详细列表输出写入home_files.txt,替代终端显示。示例4:追加日志到系统文件 执行
echo "$(date): Backup completed" >> /var/log/backup.log,在系统备份日志中追加一条带时间戳的记录。示例5:清空文件内容(特殊用法) 执行
> empty_file.txt,通过覆盖重定向清空empty_file.txt的内容(文件大小变为0),保留文件本身。示例6:脚本中记录执行结果 脚本中执行
grep "ERROR" /var/log/syslog >> error_report.txt,将系统日志中的错误信息追加到报告文件,便于后续分析。示例7:结合管道符重定向 执行
ps aux | grep "nginx" > nginx_processes.txt,先通过管道筛选nginx进程,再将结果写入文件保存。
注意:重定向仅处理标准输出(stdout),错误信息(stderr)需用
2>或2>>处理(例如command 2> error.log记录错误)。使用>时需谨慎,避免误覆盖重要文件。