如何将命令输出重定向至另一命令输入?以ls与grep为例
嗨,这个问题在命令行操作里超常见的!咱们用**管道(pipe)**就能搞定——也就是那个竖线符号 |,它专门用来把前一个命令的输出直接传给后一个命令当输入。
关于命令间的输出输入重定向
- 核心工具就是管道符
|:它的作用是将左侧命令的标准输出(STDOUT),直接作为右侧命令的标准输入(STDIN)。这是Linux/Unix类系统里串联命令、实现复杂操作的基础技巧之一。 - 举个实用的例子:如果想统计当前目录下的文件总数,就可以用
ls | wc -l——ls输出所有文件名,管道把这个列表传给wc -l,后者负责统计行数,也就是文件数量。
你的命令填空答案
你给出的命令空白处应该填入 |,完整命令如下:
$ ls /etc | grep host
这个命令的作用是列出/etc目录下所有文件名包含host的文件或目录。具体流程是:ls /etc输出该目录下的所有条目,管道将这个输出传递给grep host,grep会筛选出包含host字符串的行并显示出来。
额外提个小知识点:除了管道,还有其他重定向方式,比如 <(从文件读取输入)、>(将输出写入文件并覆盖原有内容)、>>(将输出追加到文件末尾),但管道是实现命令间直接传递输出输入的最便捷方式。
内容的提问来源于stack exchange,提问作者Jose Luis Montalvo Ferreiro
相关产品推荐
相关产品推荐

