Linux 重定向的主要作用是将命令的输入或输出重定向到文件或设备,实现输入和输出的灵活控制。
常见的重定向类型有:
- 将命令输出重定向到文件:
command > file
这将命令的标准输出重定向到 file 文件中,文件会被覆盖或新建。
- 将命令输出以追加的方式重定向到文件:
command >> file
这将命令的标准输出以追加的方式重定向到 file 文件中,文件不存在则新建。
- 将命令输入重定向自文件:
command < file
这将命令的标准输入重定向自 file 文件。
- 将命令输出和错误一并重定向到文件:
command > file 2>&1
或
command &> file
这会将标准输出和标准错误一起重定向到 file。
- 将命令输入和输出全部重定向:
command < input_file > output_file
这将命令的标准输入重定向自 input_file,标准输出重定向到 output_file。
重定向能实现批处理和管道连接,灵活控制 Linux 命令的输入输出,十分实用。
命令总结:
ls /etc/passwd > output.txt 标准正确输出重定向到output.txt
ls /etc/shadow >> output.txt 标准正确输出追加重定向到output.txt
ls dddddd 2> error.txt 标准错误输出重定向到error.txt
ls ddddd 2>> error.txt 标准错误输出重定向到error.txt,追加的方式
ls dddddd 2> /dev/null 标准错误输出重定向到黑洞
ls ddddd /etc/passwd &> /dev/null 标准正确输出标准错误输出全都重定向到黑洞
ls ddddd /etc/passwd &>> txt 标准正确输出标准错误输出以追加的方式全都重定向到txt
cat < file 标准输入重定向,file作为cat输入的内容
标准输入 代码 0 默认设备为键盘
标准输出 代码 1 默认设备为屏幕
错误输出 代码 2 默认设备为屏幕
这是在解释 Linux/Unix 系统中标准输入(stdin)、标准输出(stdout)和标准错误(stderr)的概念:
- 标准输入(stdin):代码为0,默认从键盘输入
- 标准输出(stdout):代码为1,默认输出到屏幕
- 标准错误(stderr):代码为2,默认输出到屏幕
代码这里指的是这三种流所对应的文件描述符。
具体意思是:
-
标准输入(stdin)是命令/程序接受输入的数据流,默认从键盘输入,文件描述符为0。
-
标准输出(stdout)是命令/程序输出正常结果的数据流,默认输出到屏幕,文件描述符为1。
-
标准错误(stderr)是命令/程序输出错误信息的数据流,默认也是输出到屏幕,文件描述符为2。
这三种数据流在 Linux/Unix 系统中是可以通过重定向来控制的,例如可以重定向到文件或设备等。这给了我们很大的灵活性来控制命令的输入输出。