Linux I/O 重定向17 Mar 2025 | 阅读 2 分钟 重定向可以定义为改变命令从何处读取输入以及命令将输出发送到何处。您可以重定向命令的输入和输出。 重定向使用元字符。重定向可以指向 **文件**(shell 元字符是尖括号 '<'、'>')或 **程序**(shell 元字符是 **管道** 符号 '|')。 I/O 重定向中的标准流bash shell 在 I/O 重定向中有三个标准流
重定向到文件每个流都使用重定向命令。可以使用单个括号 '>' 或双个括号 '>>' 来重定向标准输出。如果目标文件不存在,将创建一个同名的新文件。 覆盖 带有单个括号 **'>'** 的命令会 **覆盖** 现有文件的内容。
注意:写入 **'1>'** 或 **'>'** 以及 **'0<'** 或 **'<'** 是相同的。但对于 stderr,您必须写入 **'2>'**。 语法 示例 ![]() 查看上面的截图,命令 "cat > sample.txt" 已创建包含内容 'a, b, c' 的 'sample.txt' 文件。使用命令 **"cat > sample.txt"** 再次创建相同的 'sample.txt' 文件,这次它覆盖了先前的文件内容,并且只显示 'd, e, f'。 Append带有双括号 **'>>'** 的命令 **不会覆盖** 现有文件的内容。
语法 示例 ![]() 查看上面的截图,这里我们使用命令 **"cat >> sample.txt"** 再次创建了两个同名文件。但这次,内容没有被覆盖,所有内容都被显示出来了。 重定向到程序管道将一个 **程序** 的流重定向到另一个程序。当使用管道将一个程序的标准输出发送到另一个程序时,第一个程序的数据不会显示在终端上,只有第二个程序的数据会显示出来。 尽管管道的功能可能看起来与 '>' 和 '>>' 相似,但它们有显著的区别。管道将数据从一个程序重定向到另一个程序,而括号仅用于文件的重定向。 示例 ![]() 查看上面的截图,命令 **"ls *.txt | cat > txtFile"** 将所有 '.txt' 文件放入一个新创建的文件 'txtFile' 中。 下一话题Linux 输入重定向 |
2> stderr 命令 '2>' 重定向输出的错误。它通过重定向错误消息帮助我们保持显示屏整洁。示例: zcho hyii 2> /dev/null 查看上面的截图,通过使用命令 "zcho hyii 2> /dev/null"(这里 echo 命令是错误的),我们没有得到任何...
阅读1分钟
< stdin bash shell 使用 stdin 来接收输入。在输入重定向中,一个文件被用作命令的输入,并且通过 '<' 符号完成此重定向。语法: cat < <fileName> 示例: cat < file.txt 查看上面的截图,命令 "cat < file.txt" 已将 'file.txt'...
阅读1分钟
输出重定向用于将一个命令的输出放入一个文件或另一个命令中。> stdout stdout 使用 '>' 大于号进行重定向。当 shell 遇到 '>' 符号时,它会清除文件(如您已知的)。示例: echo Hello everyone. > afile.txt...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India