linux的重定向命令
linux的重定向命令详细介绍
在 Linux 中,重定向命令用于将命令的输入、输出或错误信息重定向到文件或其他设备(如管道、黑洞等)。以下是常用的重定向操作及示例:
一、标准输入 / 输出 / 错误
Linux 中每个进程默认有 3 个文件描述符:
- 0(stdin):标准输入(键盘输入)
- 1(stdout):标准输出(命令正常输出)
- 2(stderr):标准错误(命令错误输出)
二、常用重定向符号
1.
标准输出重定向(1> 或 >)
>:将标准输出覆盖写入文件(若文件存在则清空内容)。bashoutput.txt>>:将标准输出追加写入文件(保留文件原有内容,新增内容追加到末尾)。bashoutput.txt
2.
标准错误重定向(2> 或 2>>)
2>:将标准错误覆盖写入文件。bashnon_exist_file > error.txt2>>:将标准错误追加写入文件。bashnon_exist_file >> error.txt
3.
同时重定向输出和错误
&>或>&(Bash 支持):将标准输出和错误同时覆盖写入文件。bashresult.txt>>&:将标准输出和错误同时追加写入文件。bashresult.txt >
4.
标准输入重定向(<)
<:从文件读取输入,替代键盘输入。bashinput.txtinput.txt
5.
丢弃输出(黑洞设备 /dev/null)
/dev/null是一个特殊文件,写入其中的内容会被永久丢弃。- 丢弃标准输出:bash
/dev/null - 丢弃标准错误:bash
> /dev/null - 丢弃所有输出(输出和错误):bash
/dev/null
- 丢弃标准输出:bash
三、高级用法:文件描述符操作
- 复制文件描述符:用
n>&m将描述符n重定向到m的目标。bashfile.txt > - 创建新的文件描述符(如暂存原始输出):bash
>error.txt
>
>&-
四、总结
| 符号 | 说明 |
|---|---|
command > file |
将标准输出覆盖写入 file |
command >> file |
将标准输出追加到 file |
command 2> file |
将标准错误覆盖写入 file |
command 2>> file |
将标准错误追加到 file |
command &> file |
将标准输出和错误同时覆盖写入 file(Bash) |
command > file 2>&1 |
等价于 &>,兼容更多 shell |
command < file |
从 file 读取输入作为命令的标准输入 |
command > /dev/null |
丢弃标准输出 |
command 2> /dev/null |
丢弃标准错误 |
command &> /dev/null |
丢弃所有输出(输出和错误) |
通过重定向,可以灵活处理命令的输入输出,常用于脚本日志记录、错误排查或批量处理任务。