重定向
标准错误重定向是一种Linux/Unix操作系统中常见的输入输出重定向技术,用于将程序的错误输出(stderr)重定向到文件或程序的标准输出(stdout)上,从而实现对程序输出结果的控制和管理。
在Linux/Unix系统中,每个进程都有三个标准的I/O流:
标准输入(stdin):通常输入设备为键盘;
标准输出(stdout):通常输出设备为屏幕;
标准错误(stderr):通常输出设备为屏幕,用于输出错误信息。
当程序执行时,如果没有进行重定向操作,三个I/O流将连接到终端设备(通常为屏幕和键盘)。当程序发生错误时,错误信息会输出到标准错误流(stderr),并打印在屏幕上。这时,用户不方便对错误信息进行保存、查看和处理。
使用标准错误重定向技术,可以将程序的错误输出流(stderr)重定向到文件或程序的标准输出流(stdout)上,以方便对程序的输出进行控制、管理和分析。例如,将错误日志输出到一个文件:
command > output.txt 2> error.txt (注意这里>代表标准输出流,>2代表错误流,等于command的输出被分流了)
需要注意的是,标准输入、标准输出和标准错误三者之间是相互独立的,因此需要对它们进行单独的重定向操作。
管道命令命令A|命令B --> 命令A的输出当做命令B的输入 管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。 例如,统计系统设备目录 /dev 下有多少个文件或子目录: ls -l /dev | wc -l
————————————————
版权声明:本文为CSDN博主「路上阡陌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51431003/article/details/130340869
ls -l > out.file 2>&1 &
解释:
ls -l > out.file //将ls的输出重定向到文件out.file
2>&1 //在shell中,文件描述符通常是:STDIN,STDOUT,STDERR,即:0,1,2,由此可以看出,它将ls -l > out.file在输出过程中产生的错误信息也放在了STDOUT,即:1中,你可以作实验,如果命令产生了错误,那么错误信息也就在out.file中.
最后的& ,不用说,是放在后台运行.
ref: http://www.yesweb.net/202304/4339.html
Linux tee命令
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
- -a或--append 附加到既有文件的后面,而非覆盖它.
- -i或--ignore-interrupts 忽略中断信号。
- --help 在线帮助。
- --version 显示版本信息。
xargs 指令 用于将命令A的输出放在命令B之后,作为命令B的参数使用。
如下:
commnad A | xargs command B
实例使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令: $ tee file1 file2 #在两个文件中复制内容 以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示: My Linux #提示用户输入数据
My Linux #输出数据,进行输出反馈
此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。
|