管道和文件重定向的区别 - BASH

2024-02-29

重定向用于重定向 stdout/stdin/stderr! 前任:ls > log.txt.

Pipes用于将一个命令的输出作为另一个命令的输入。 前任:ls | grep file.txt

为什么这两个操作员会做同样的事情?

为什么不直接写ls > grep传递输出,这不也是一种重定向吗?

我意识到 Linux 是“做一件事并把它做好”,所以我错过了更多的逻辑原因。


You do需要区分语法功能 - 并使用> vs. |会做得很好。

如果你用过> in both场景,你怎么知道是否

ls > grep

正在尝试写信给file named grep或将输入发送到grep command?

grep is perhaps not the best example, as you may then be tempted to disambiguate by the presence of grep's mandatory arguments; however, (optionally) argument-less commands do exist, such as column.
that other guy https://stackoverflow.com/users/1899640/that-other-guy offers another example in the comments: test may refer to a test output file or to the argument-less invocation of the standard test command http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html.


另一种看待它的方式:

您的建议本质上是使用>作为通用的发送输出某处运算符,无论目标类型如何(文件与命令)。

然而,仅此而已shifts需要消除歧义,然后在指定时必须消除歧义target- 是要输出的文件还是要运行的命令?

鉴于外壳也有一个implicit消歧功能,当涉及到first一个简单命令的标记 -foo [...]只调用一个command- 在层次上进行差异化operator - >用于输出到文件,|对于发送命令 - 是明智的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管道和文件重定向的区别 - BASH 的相关文章

  • 打印 STDOUT/STDERR 并将它们写入 Bash 中的文件?

    有没有办法让 Bash 将 STDOUT STDERR 重定向到文件 但仍然将它们打印到终端 这会将 STDOUT 和 STDERR 重定向到同一个文件 some command 2 gt 1 tee file log Example to
  • 如果文件修改日期早于 N 天

    此问题涉及在文件的修改日期早于这么多天时采取行动 我确信创建日期或访问日期会类似 但对于修改日期 如果我有 file path name to some file N 100 for example N is number of days
  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 水银大号

    你知道如何让 Quicksilver 在屏幕上显示大量的大字体吗 通过点击 然后输入自由文本 选择 操作 下的 查看大字体 并按 Enter 键 好吧 有谁知道一种以编程方式做到这一点的方法吗 另外 quicksilver 是必需的还是内置
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 如何从 Linux 命令行确定 LCD 显示器是否打开

    如何通过 Linux 命令行判断计算机的显示器是否打开 关闭 我传统上认为显示器是仅输出的设备 但我注意到 Gnome 显示器首选项对话框具有 检测显示器 功能 这可以推广到确定显示器是否物理关闭吗 VESA DDC 连接是I2C http
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • 将操作分配给 Automator 中的变量以在 Shell 脚本中使用

    好吧 这件事现在让我发疯 因此 操作 1 选择一个文件夹 我想将该文件夹的路径保存为 var 1 操作 3 选择一个文件 我想将该文件的路径保存为 var 2 所以到底 var 1 Users Prometheus Desktop var
  • 编写 shell 脚本以 am 或 pm 表示法显示时间

    我正在尝试编写一个 shell 脚本 以上午或下午的形式显示时间 而不是使用 date 命令显示时间 我不知道我应该如何去做这件事 我想对于初学者来说 如何从日期命令中提取时间来操作它 我如何提取小时数来操纵它 您正在寻找的是 man st
  • 从sourceforge下载最新版本

    我正在尝试在 bash 脚本中从 Sourceforge 下载最新版本的graphicsmagick wget q https sourceforge net projects graphicsmagick files latest dow
  • 为什么 RHEL 上的 bash 中 `read -t` 没有超时?

    Why read t在 RHEL5 或 RHEL6 上从管道读取时不会超时 这是我的示例 在从管道读取数据时 我的 RHEL 盒子不会超时 tail f logfile log grep something read t 3 variabl
  • ubuntu 中的 echo -e 选项不起作用

    我的同事使用Ubuntu 我使用openSUSE 我们使用相同的makefile编译相同的源代码 我的环境运行良好 但我的同事不能 总是输出无法识别 e选项 我们检查makefile 只发现echo命令使用 e option Ubuntu的
  • bash 递归xtrace

    有没有办法运行 bash 脚本 X 以便如果 X 调用可执行 bash 脚本 Y 则 Y 以 sh eux 开头 X sh Y sh Y sh bin sh echo OK 可以通过导出子 shell 使用父 shell 中设置的相同 sh
  • 从文件开头开始 grep (grep -f )

    I use commands grep f file从文件中提取管道内容 但是 我只想在匹配字符串位于行开头时才提取 通常我使用grep string 但它不适用于grep f grep f file grep No such file o
  • 如何按文件大小对查找结果进行排序

    如何按文件大小对 find 命令的结果进行排序 我试图对这个 find 命令的结果进行排序 find src type f print0 我不需要目录的大小 我需要仅按大小排序的文件相对路径 这是如何做的using find command
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f

随机推荐

  • LINQ to SQL C# 中的 SELECT COUNT

    如何使用 COUNT 编写 LINQ to SQL Example var purch from purchase in myBlaContext purchases select purchase 我怎样才能在这里得到计数 像那样 var
  • noexcept、继承构造函数以及对实际完整的不完整类型的无效使用

    我不确定这是否是一个错误GCC编译器或预期的行为noexcept 考虑以下示例 struct B B int noexcept virtual void f 0 struct D public B using B B D noexcept
  • facet_grid 中的多行

    我有一个数据集 大致如下所示 names tibble NAME 2 c Location1 Location2 Location3 Location4 dates tibble date seq as Date 2015 01 01 as
  • 字体在 iPhone 上的位置?

    我正在 iPhone 项目中使用 FreeType2 库 并且如果可能的话 我尝试简单地从系统加载 TTF 文件 FT Library library FT Face face int error error FT Init FreeTyp
  • 省略 xstream 中的 xml 声明

    我想使用 xstream 将内容附加到 xml 但每次运行时都使用 xstream toXml obj writer 它会向内容添加 xml 声明 我们可以在 xstream 中省略 xml 声明吗 我刚刚遇到这个问题 使用 XStream
  • 如何在 Javascript 中将数组转换为对象数组[重复]

    这个问题在这里已经有答案了 我想转换一个数组 如 John Jane 放入对象对数组中 如下所示 name John name Jane 请帮助我这样做 尝试数组中的 map 函数 const output John Jane map na
  • 使用 Selenium 验证

    我需要验证网页上的特定插槽是否已加载 我正在使用 Selenium WebDrivermain 函数 我应该使用 JUnit 测试用例吗 在任意对象之间检索文本的方法有哪些 div 有具体的id吗 如果给定这一页 http ideone c
  • R:为文字云图形/png添加标题

    我有一些有效的 R 代码 可以从术语文档矩阵生成标签云 现在 我想从许多文档创建一大堆标签云 并在稍后进行可视化检查 要知道标签云图片属于哪个文档 语料库 我想为生成的图形添加标题 我怎么做 也许这是显而易见的 但我仍然是 R 图形的初学者
  • DNS 与 GKE 内部负载均衡器

    我在 GKE 上有两个 kubernetes 集群 一个公共集群处理与外界的交互 另一个私有集群仅供内部使用 公共集群需要访问私有集群上的一些服务 我已通过以下方式将这些服务暴露给公共集群的 Pod内部负载均衡器 https cloud g
  • 为后台线程配置 Autofac 容器

    我有一个 asp net MVC 站点 其中有许多使用 InstancePerHttpRequest 范围注册的组件 但是我还有一个 后台任务 它将每隔几个小时运行一次 但不会有 httpcontext 我想获得一个已像这样注册的 IRep
  • 我可以对隐私网址做什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试将我的 Android 应用程序投放市场 而我最不需要的就是隐私 URL 问题是我没有网站
  • 对嵌套数组进行排序并返回弹性中的前 10 名

    我在弹性索引中有一个嵌套数据类型 并且希望对所有返回的结果进行升序排序 我已经尝试过以下方法 GET indexname search source m iTopicID m iYear m Companies query terms m
  • 在继续功能之前等待图像上传的响应

    因此 我正在研究数组中多个图像的上传功能 经过一番努力 我终于让我的上传功能正常工作 并且图像显示在 Firebase 数据库中 然而 我还没有找到一种工作方法来确保我的上传功能在继续之前完成 下面是我调用 upload 函数并尝试将响应存
  • 设置仅适用于一个会话/一名用户

    我创建了一个 WindowsForms 应用程序 然后在以下命令的帮助下进行了设置这个链接 https stackoverflow com questions 56541199 how to create setup exe file fo
  • SQLite 数据库不更新列表视图项并插入新项

    当项目为listview单击后 它会在另一个活动中打开 该活动具有edittext 编辑项目后 当我保存它时 项目不会在列表视图中更新 但会在列表视图中插入一个新条目 如何更新现有项目而不插入新项目 这是我的代码 活动 TRList cla
  • 为什么 memcmp(a, b, 4) 仅有时针对 uint32 比较进行优化?

    鉴于此代码 include
  • 为什么我的按钮的“验证”事件处理程序从未被调用?

    在下面的小应用程序中 我想知道为什么从未调用 BtnOk Validating 事件处理程序 我预计单击 确定 按钮会调用事件处理程序 真实的对话框有更多的控件 每个控件都有一个验证事件处理程序 我的计划是使用 确定 按钮验证事件处理程序
  • 从 Windows 注册表读取 DWord

    如何使用 java util prefs Preferences 从 Windows 注册表读取 DWORD 值数据 我可以读取REG SZ类型的数据 但是读取REG DWORD类型时 返回null Preferences userRoot
  • JavaScript 窗口对象元素属性

    一位同事向我展示了以下代码并问我为什么它有效 span Do you like my hat span 我解释过 当浏览器解析文档时 会使用元素 id 的名称将一个属性附加到 window 对象 然后该文档包含对相应 dom 节点的引用 有
  • 管道和文件重定向的区别 - BASH

    重定向用于重定向 stdout stdin stderr 前任 ls gt log txt Pipes用于将一个命令的输出作为另一个命令的输入 前任 ls grep file txt 为什么这两个操作员会做同样的事情 为什么不直接写ls g