比如原有文件a.txt,里面有一内容this is a test。现在我执行了命令:ls -l >>a.txt, 那么这个时候,因为的ls -l这个命令是正确的,所以ls -l 这个命令的结果将会被追加到a.txt中,以行为单位,写在了this is a test这段内容下面。
相反如果我执行了命令aaaa 2>>a.txt,那么因为这个命令是错的,所以会把我执行的aaaa命令之后所提示的错误提示(比如: command not found)追加到a.txt,同样是在this is a test这段话的下面。
而>和2>却是不追加,而是覆盖掉原有内容,其他意思一样。
在您实现输出的那行命令后面加上>、>>、<、<<、2>、2>>来实现重定向。>是每一次重定向时将原先的内容先删除然后写入新的数据。
>>是每一次重定向时将新的内容加入到就内容的后面。
<是将指定文件内容重定向到相关命令或者文件中,同时每次执行时先删除旧的再加入新的。
<<作用同上,只是将新的信息加到旧的信息后面。
2>是将命令执行报错时,将错误信息重定向至指定文件,并且每次执行都会先删除旧的再加入新的。
2>>和上面一条命里作用一样,只是将新的错误信息加到原来信息的后面
举例:
1.ls /etc/passwd >user
2.ls /etc/passwd >>user
3.ls idjsoigjs >test
4.ls idjsoigjs >>test
5. mail 用户名 -s "邮件题目" <file (file是你建的一个文件,里面内容随意自己定)
然后输入 mail 可以看到自己有封邮件题目为(您自定义的名字),输入相应的数字,您可以按到信件内容为file内容,这就是利用重定向直接将已写好的信件内容发送出去。
至于1-4的结果,楼主可在输入完后自行查看user和test的变化来进行对比。
对照刘遄老师的《Linux就该这么学》
重定向是个 *** 作系统的概念它的主要含义是将原本从一个输入输出设备的输入输出 *** 作,转向到从另外一个输入输出设备进行。
例如:linux系统中sh启动进程时会默认打开三个输入输出文件:标准输入文件、标准输出文件和标准错误文件(一般情况下是控制台),他们的文件句柄分别是0,1,2,
有时候你需要将进程的输出输出到一个文件的时候,你会这样处理:a>file.txt(假定a是程序名称)
那么sh就会将默认的两个输出文件1和2改为:file.txt
这就叫重定向。
例如下面的sh命令:a
<fa.txt
1>fo.txt
2>fe.txt
sh就将0的输入文件该向为:fa.txt,也就是将输入改为从文件fa.txt
将1输出文件重定向为:fo.txt
将2输出文件重定向为:fe.txt
一般这些都是 *** 作系统记得内容,基本上与开发没有关系,你说gfortran要用重定向,我不太明白。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)