>或1> 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容
例子:
[root@pp data]# echo ‘123‘>oldboy.txt
[root@pp data]# cat oldboy.txt
123
[root@pp data]# echo ‘pp‘1>oldboy.txt
[root@pp data]# cat oldboy.txt
pp1
[root@pp data]# echo ‘pp‘ 1>oldboy.txt
[root@pp data]# cat oldboy.txt
pp
[root@pp data]# cat >oldboy.txt
pp
^C
>>或1>> 追加输出重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件原有内容
例子:
[root@pp data]# >oldboy.txt
[root@pp data]# echo ‘1 2 3‘ >>oldboy.txt
[root@pp data]# echo ‘pp‘ >>oldboy.txt
[root@pp data]# cat oldboy.txt
1 2 3
pp
[root@pp data]# echo ‘lc‘ 1>>oldboy.txt
[root@pp data]# cat oldboy.txt
1 2 3
pp
lc
<或0< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名
例子:
[root@pp data]# cat oldboy.txt
1 2 3 4 5 6
[root@pp data]# cat <oldboy.txt
1 2 3 4 5 6
[root@pp data]# cat oldboy.txt
pp
[root@pp data]# echo ‘1 2 3 4 5 6‘>oldboy.txt
[root@pp data]# cat oldboy.txt
1 2 3 4 5 6
[root@pp data]# xargs -n 2 <oldboy.txt (把文件oldboy.txt里面的内容输入给前面的xargs处理)
1 2
3 4
5 6
[root@pp data]# xargs -n 1 <oldboy.txt
1
2
3
4
5
6
<<或0<< 追加输入重定向:后跟字符串,用来表示“输入结束”,也可以用ctrl+d来结束输入
例子:
[root@pp data]# cat >>oldboy.txt
lc
dpy
^C
[root@pp data]# cat oldboy.txt
pp
lc
dpy
[root@pp data]# cat >oldboy.txt <<EOF
> oldboy
> EOF
[root@pp data]# cat oldboy.txt
oldboy
[root@pp data]# cat >>oldboy.txt <<EOF
> 111
> 222
> 333
> EOF
[root@pp data]# cat oldboy.txt
111
222
333
2> 错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容
例子:
[root@pp data]# echo ‘oldboy‘ >a.txt
[root@pp data]# cat a.txt
oldboy
[root@pp data]# echo ‘oldboy‘ 1>a.txt
[root@pp data]# cat a.txt
oldboy
[root@pp data]# echo ‘oldgirl‘ 1>a.txt 2>b.txt
[root@pp data]# cat a.txt
oldgirl
[root@pp data]# cat b.txt
[root@pp data]# cho ‘oldgirl‘ 1>a.txt 2>b.txt (命令出错由2>收集,不收集在屏幕上显示)
[root@pp data]# cat a.txt
[root@pp data]# cat b.txt
-bash: cho: command not found
2>> 错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容
例子:
[root@pp data]# echo pp 1>>a.txt 2>>a.txt
[root@pp data]# cat a.txt
pp
[root@pp data]# cho pp 1>>a.txt 2>>a.txt
[root@pp data]# cat a.txt
pp
-bash: cho: command not found
[root@pp data]# rm -f *
[root@pp data]# ls
[root@pp data]# ls
[root@pp data]# echo pp >a.txt 2>&1 (工作中通常会这么写)
[root@pp data]# cat a.txt
pp
[root@pp data]# cho pp >a.txt 2>&1
[root@pp data]# cat a.txt
-bash: cho: command not found
[root@pp data]# cho pp &>a.txt
[root@pp data]# cat a.txt
-bash: cho: command not found
[root@pp data]# echo pp &>a.txt (&>正确的和错误的都放在a.txt里面)
[root@pp data]# cat a.txt
pp
[root@pp data]# echo pp &>>a.txt
[root@pp data]# cho pp &>>a.txt
[root@pp data]# cat a.txt
pp
pp
-bash: cho: command not found
说明:
1、箭头的指向就是数据的流向
2、数字说明:
(1)标准输入(stdin):代码为0,使用<或<<。数据流向从右向左。
(2)标准正常输出(stdout):代码为1,使用>或>>。数据(正确的数据)流向从左向右。
(3)标准错误输出(stderr):代码为2,使用2>或2>>。数据(错误的数据)流向从左向右
(4)2>&1标准正常输出和标准错误输出一样,相当于跟屁虫,1放到哪,2就放到那
本文出自 “11837542” 博客,请务必保留此出处http://11847542.blog.51cto.com/11837542/1896268
原文:http://11847542.blog.51cto.com/11837542/1896268