首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux I/O重定向详细介绍

Linux I/O重定向

Linux I/O重定向可以定义为,更改从命令读取输入到命令发送输出的方式。你可以重定向命令的输入和输出。对于重定向符号,可以是 或者 | 。

I/O重定向中的标准流

Bash shell在I/O重定向中有三个标准流:

重定向到文件

每个流都使用重定向命令。单括号'>'或双括号'>>'可用于重定向标准输出。如果目标文件不存在,将创建一个具有相同名称的新文件。

覆盖:带有单括号“>”的命令将覆盖现有的文件内容。

注意:写“1>”或“>”和“0

追加: 带有双括号“>>”的附加命令不会覆盖现有的文件内容。

重定向到程序

重定向到程序管道将流从一个程序重定向到另一个程序。当管道用于将一个程序的标准输出发送到另一个程序时,第一个程序的数据将不会显示在终端上,只显示第二个程序的信息。尽管管道的功能看起来可能与“>”和“>>”相似,但有显著差异。管道将数据从一个程序重定向到另一个程序,而括号仅用于文件的重定向。

Linux input 重定向

bash shell使用stdin获取输入。在输入重定向中,将文件输入命令,并在“

EOF(文件结束)可以键入,也可以通过按(ctrl+d)键调用。任何单词都可以代替“EOF”,就像我们使用的“last”一样。

字符串用于将字符串直接传递给命令。

Linux输出重定向

输出重定向用于将一个命令的输出放入文件或另一个命令。

stdout使用大于号'>'重定向。当shell遇到'>'号时,它将清除文件:

输出文件被擦除

在输出重定向中,在扫描命令行的过程中,shell将遇到“>”符号,并将清除文件。

nolobber

我们可以在nolobber选项的帮助下,在使用'>'符号时防止文件删除。

否定noclobber

重写nolobber意味着您可以在使用'>|'符号设置nolobber时覆盖现有文件。

append'>>' 不允许覆盖文件内容,因此显示新的和旧的文件内容。

Linux错误重定向

2> stderr

命令'2>'重定向输出的错误,它可以通过重定向错误消息来帮助我们减少显示的混乱。

2> &1

此命令有助于重定向同一文件中的stdout和stderr。

注意:重定向的顺序非常重要:

然后,stdout和stderr都将被定向到文件目录列表:

然后,只有stdout会重定向到目录列表。这是因为,在将stdout重定向到目录列表之前,stderr已经复制了stdout。

作者:执着的花猫Jp

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230327A0391900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券