当前位置: 首页 > 编程笔记 >

Linux输入输出重定向详细使用说明

杜起运
2023-03-14
本文向大家介绍Linux输入输出重定向详细使用说明,包括了Linux输入输出重定向详细使用说明的使用技巧和注意事项,需要的朋友参考一下

1、Linux标准输入输出
Linux标准输入、输出设备主要是键盘和显示器,详细介绍如下表所示。

Linux标准输入输出
设备 设备文件名 文件描述符 类型 符号表示
键盘 /dev/stdin 0(缺省是键盘,为0时是文件或者其他命令的输出) 标准输入 < <<
显示器 /dev/stdout 1(缺省是屏幕,为1时是文件) 标准输出 > >>
显示器 /dev/stderr 2(缺省是屏幕,为2时是文件) 标准错误输出 2> 2>>

注:其中一个>表示:覆盖原文件中的内容;如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候

两个>即>>表示:追加到原文件中的内容之后;果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响

2、Linux输出重定向
输出重定向:改变程序运行的输入来源和输出地点。

主要的适用方法如下表所示:

输出重定向
类型 符号 功能
标准输出重定向 命令 >文件 以覆盖方式,把命令的正确输出内容输出到指定的文件或设备当中
命令 >>文件 以追加方式,把命令的正确输出内容输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖方式,把命令的错误输出内容输出到指定的文件或设备当中
错误命令 2>>文件 以追加方式,把命令的错误输出内容输出到指定的文件或设备当中
正确/错误输出同时保存 命令 > 文件 2>&1 以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中
命令 >> 文件 2>&1 以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中
命令 &> 文件 以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中
命令 &>> 文件 以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中
命令 >>文件1 2>文件2 以追加方式,把命令的正确输出保存在文件1中;以覆盖方式,把命令的错误输出内容保存到文件2中

3、Linux输入重定向

输入重定向
类型 符号 功能
标准输入 命令 <文件1 命令把文件1的内容作为标准输入
标识符限定输入 命令 <<标识符 命令从标准输入中读入内容,直到遇到“标识符”分界符位置
输入输出重定向 命令 <文件1 >文件2 命令把文件1的内容作为标准输入,把文件2作为标准输出

总结一五Linux的输入输出重定向:

1、重新设置命令的默认输入,输出,指向到自己文件(文件,文件描述符,设备其实都是文件,因为linux就是基于设备也是文件,描述符也指向是文件)

2、扩展自己新的描述符,对文件进行读写操作

 类似资料:
  • 本文向大家介绍linux shell数据重定向(输入重定向与输出重定向)详细分析,包括了linux shell数据重定向(输入重定向与输出重定向)详细分析的使用技巧和注意事项,需要的朋友参考一下 在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操

  • 问题内容: 我正在尝试使用C为Linux创建一个基本的shell。在我尝试进行输出重定向之前,它已经可以工作了,并且它破坏了一切。当我运行此代码时,它直接进入fork()的默认情况。我不知道为什么。如果我在子进程中摆脱了for循环,那么它就可以工作,但是即使有了for循环,我也不明白为什么子进程甚至从未输入。如果将打印语句放在子进程的顶部,则不会打印出来。 当我在命令行中运行此命令时,我得到提示并

  • 1. Shell 重定向 1.1 Shell 重定向是什么 我们在之前章节有学习 echo/printf 来将我们的需求输出,此时就是我们将系统的返回输出到我们标准终端,使得我们能够看到正常的输出的结果,Unix 命令默认的输入设备即 stdin 为键盘,标准和错误设备即 stdout 为显示器,我们利用重定向可以将输入改为文件,或者将输出重新定向到其他设备或文件中。 1.2 为什么要用重定向 我

  •   大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。 命令 说明 command > file 将输出重定向到 file。 command < file 将输入重定向到 file。 command >> file 将输出以

  • 嗨,我一直在用c编写shell,我在尝试重定向时卡住了。虽然在我的程序中重定向标准输出有效,但标准输入不起作用。 我是< code>fork()的新手,但我的问题是我在这里做错了什么,重定向stdout可以工作,但stdin不会向给定的文件写入任何内容。

  • 问题内容: 我正在尝试使用以下代码重定向在ProcessBuilder的帮助下启动的流程的输出 但是它以失败告终 线程“主”中的异常java.io.IOException:无法运行程序“ / myScript >> / myLogFile 2>&1 <&-&”:java.io.IOException:error = 2,java.lang中没有此类文件或目录.ProcessBuilder.star