在类Unix操作系统中,"重定向"是一种将命令的输出(或输入)从一个默认的位置(通常是终端)改到另一个位置(通常是文件)的操作。这是通过使用特定的符号来实现的,这些符号告诉 shell 命令的输出应该被发送到何处。
以下是一些基本的重定向操作:
-
标准输出重定向:
- 使用
>
将命令的标准输出重定向到一个文件。例如:
这会创建一个名为echo "Hello, World!" > output.txt
output.txt
的文件,并将字符串 "Hello, World!" 写入其中。
- 使用
-
追加输出到文件:
- 使用
>>
将输出追加到现有文件的末尾,而不是覆盖文件。例如:
这会在echo "Another line" >> output.txt
output.txt
文件的末尾添加 "Another line"。
- 使用
-
标准错误重定向:
- 使用
2>
将标准错误重定向到一个文件。例如:
这会将由于找不到文件而产生的错误消息写入ls not_existing_file 2> error.log
error.log
。
- 使用
-
同时重定向标准输出和标准错误:
- 使用
&>
将标准输出和标准错误都重定向到同一个文件。例如:
这会将标准输出和错误都写入./your_script.sh &> full_output.log
full_output.log
。
- 使用
-
将标准错误重定向到标准输出:
- 使用
2>&1
将标准错误重定向到当前的标准输出位置。例如:
如果之前使用echo "Error message" 2>&1
>
将标准输出重定向到文件,错误消息也会被写入同一个文件。
- 使用
-
输入重定向:
- 使用
<
将文件内容作为命令的输入。例如:
这会读取echo "Error message" 2>&1
input.txt
文件的内容并显示在终端。
- 使用
重定向是 shell 编程和脚本编写中的一项基本而强大的功能,它允许用户控制命令的输入和输出流,进行更复杂的数据处理和日志记录。