当我们在命令行中执行一个命令时,通常需要指定命令所需的输入数据和输出目标。输入重定向符号 <
、<<
和 >
就是用来处理这些输入输出的。
1. 命令 <
文件
这个符号表示将文件内容作为命令的标准输入。换句话说,命令将从指定的文件中读取数据,然后对这些数据进行处理。
例子:
假设有一个名为 data.txt
的文件,内容如下:
Hello, world! This is a test file.
我们可以使用 cat
命令将该文件的内容输出到终端:
cat < data.txt
这条命令会将 data.txt
文件的内容作为 cat
命令的标准输入,然后 cat
命令将这些内容输出到终端上。
2. 命令 <<
分界符
这个符号用于从标准输入中读取数据,直到遇到指定的分界符为止。通常用于从命令行中输入多行文本。
例子:
cat << EOF This is line 1. This is line 2. EOF
这条命令会将直到遇到 EOF
(结束符)为止的所有输入行作为 cat
命令的标准输入。这种方式使得可以方便地在命令行中输入多行文本,而不需要创建临时文件。
3. 命令 < 文件1 > 文件2
这个组合使用的符号表示将文件1的内容作为命令的标准输入,并将命令的标准输出重定向到文件2中。
例子:
假设有一个名为 input.txt
的文件,内容如下:
Hello, world! This is a test file.
我们可以使用 grep
命令从文件中查找特定的字符串,并将结果保存到另一个文件中:
grep "test" < input.txt > output.txt
这条命令会将 input.txt
文件的内容作为 grep
命令的标准输入,然后将 grep
命令的标准输出(即包含 "test" 字符串的行)重定向到 output.txt
文件中。
通过上述例子,我们可以看到如何使用输入重定向符号来管理命令的输入,并将处理结果输出到指定的文件中。
如何理解Linux shell中的“2>&1” - 知乎 (zhihu.com)
linux重定向符——"<"、"<<"、">"和">>" - walkwater - 博客园 (cnblogs.com)