200字
重定向 ">" ">>"
2025-10-10
2025-10-10

重定向是 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 记录错误)。使用 > 时需谨慎,避免误覆盖重要文件。


评论