linux shell重定向用法详解

发布时间:2021-01-20编辑:脚本学堂
本文介绍了linux shell重定向的用法,对标准文件描述符的重定向,关于追加模式的说明,文件覆盖与文件不覆盖说明,以及linux重定向输入等内容。

linuxjishu/9768.html target=_blank class=infotextkey>linux重定向语法:
 

$ls -la > www.jb200.com.txt

shell的重定向,本来应输出到bash的数据流,被>重定向到后面的文件www.jb200.com.txt了。

1、对标准文件描述符的重定向

我们知道文件描述符的含义,0代表以一个程序的标准输入,1代表标准输出,2代表标准错误输出,其他的暂时忽略。对于shell的重定向可以根据文件描述符的不同定向到不同的位置。简单的说就是:正确的信息可以定向到A,错误的信息可以定向到B。

例子:
 

tar zcvf www.jb200.com.tar.gz  www.jb200.com >tar.out.txt   //把打包文件的记录写到tar.out.txt文件
tar zcvf www.jb200.com.tar.gz  www.jb200.com >tar.out.txt    2 > tar.error.out.txt  //把打包文件的记录写到tar.out.txt文件,并且把错误信息写入tar.error.out.txt文件
tar zcvf www.jb200.com.tar.gz  www.jb200.com >tar.out.txt    2 >&1   //把打包文件的记录写到tar.out.txt文件,并且把错误信息也写入tar.out.txt 文件,注意 >&语法格式,表示结合两个输出。

2、关于追加模式的说明>>

>>表示对文件的追加,而>是会删除原有内容的

例子:
 

free >>free.txt    //表示以追加的模式写入free.txt 文件。

3、如何丢弃有效内容

有些shell命令是不需要显示在bash上,也不需要重定向到文件中,就需要丢弃这部分有效内容。
可以尝试使用linux通用的回收站,/dev/null来解决。

举例:
 

kill -1 1111 >/dev/null 2>&1       //返回信息以及错误信息都丢弃

4、文件覆盖与文件不覆盖说明

默认情况下,通过>重定向文件,如果文件已经存在的话,他的内容会被覆盖。如果要改变默认行为,即不覆盖的话,请使用set
 

set -o noclobber     或者set -C     //阻止文件重定向操作对一个文件的覆盖
set +o noclobber    //恢复 文件重定向操作对一个文件的覆盖

5、重定向输入<
例子:
 

vi  < jb200.com.conf