管道、重定向详解

 我来答
温屿17
2022-06-16 · TA获得超过1.2万个赞
知道小有建树答主
回答量:827
采纳率:0%
帮助的人:94.5万
展开全部

0: 对应标准输入流

1: 对应标准输出流

2: 对应标准错误流

管道就是从某条命令的输出流,作为另外一条命令的输入流。

eg: 通常情况下我们输入 ls -l 命令时,将打印当前目录下文件详情数据,并将输出结果定向到标准输出流(默认就是屏幕, 在系统中以文件标识符的形式存在);当我们输入 grep asd demo.txt 命令时,从demo文本文件中查找包含asd 这条文本中的行内容, 从demo文件中获取内容的这个动作,其实就是从文件输入流中获取; 那么 ls -ls | grep asd 就是 从标准输出流重定向到标准输入流 ,供下一条命令进行操作;

通常情况下管道后面的命令 grep asd 需要支持从标准输入流中读取数据, 如果命令不支持,则需要使用 xargs 来进行扩展;

输出重定向就是将某条命令的输出内容从标准输出流(默认的标准输出流是显示器) 重定向到另一条输出流上(其他文件);

eg: 当我们执行 ls -l >> demo.txt 命令时, 我们希望将当前命令执行结果保存到demo文件中,并以追加的形式保存;该条命令的执行原理是:打印当前目录下文件详情数据,并将输出结果定向到标准输出流, 然后由于后面接着输出重定向, 将重定向到demo.txt文件中;

>/dev/null 2>&1 与 2>&1 >/dev/null 区别

前者:标准输出 与 错误输出 都输出到 null, 即丢弃数据

后者:错误输出 在屏幕显示,标准输出 丢弃

重定向绑定:

2>&1 这就是一个最形象的重定向绑定,此语句将错误输出将和标准输出绑定到同一个文件描述符上,即它们现在都输出到屏幕上。

输入重定向就是某条命令读取的内容是从非标准输入流读取(默认的标准输入流是键盘)

eg: 当我们执行 cat < demo.txt 其执行原理:cat 命令本该从键盘中读取内容的操作改为从文件中读取内容,执行cat命令, 将结果输出到标准输出流中;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创安恒业-动环监控
2024-08-01 广告
变电站巡视巡检系统通过集成先进的物联网、大数据和人工智能技术,实现对变电站设备的实时监控、预警和自动巡检。这一系统能够减少人工巡检的频率和时长,提高巡检的准确性和效率。同时,系统能够及时发现潜在的安全隐患,减少故障停机时间,从而显著提升变电... 点击进入详情页
本回答由创安恒业-动环监控提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式