Linux 管道和重定向

文本流

我们新建一个 touch file 文件,然后用 vim 打开,随便写上一些文本。

a
b
c
...

执行 cat file 会在屏幕中输出 a b c ... cat 的功能,就是获取了 file 文件的文本流,然后往显示屏流入。

那是否还能流入到别的地方,答案是肯定的。这种操作,在 Linux 中称为 重定向


重定向

我们在新建一个文件 b,然后执行 cat file > b,这时屏幕没有显示任何东西,因为从 file 文件中流出的内容,已经被重定向到文件 b,而 >符号,就是重定向符号。


echo

echo 的功能是从屏幕显示器打印东西,我们也能用重定向的方式,向 echo 的文本流入到指定的文件。

echo 1 > b // 默认重定向会覆盖了原来的内容
echo 2 >> b // 可以使用  >> 符号,追加重定向,内容把被添加到原来的文件尾部

错误重定向

我们再尝试执行 cat a > b,这时会报出一个错误 cat a no such file or directory,因为 a 文件不存在,导致重定向失败了。针对错误的重定向,Linux 也给我们提供了办法。

cat void >& file // 重定向错误
cat void 2>& file // 仅重定向错误

管道

管道又是另外一个概念,它能让一个资源的输出,变成另外一个资源的输入。

echo 1 | wc -l // 1

上面的命令 echo 输出的 1,经过管道 | 流入到 wc 命令的输入端,最后统计出行数,得出结果为 1 行。

Linux 教程 Linux 用户 Linux 基础命令 Linux 文件权限 Linux 文件查找 Linux 文件归档 Linux vim Linux 管道和重定向 Linux 进程 Linux 运行状态 Linux 服务管理 Linux 定时任务 Linux 磁盘 Linux LVM Linux 网络配置 Linux 软件管理 Linux iptables Linux SSH Linux curl