对于任何一条linux 命令执行,它会是这样一个过程:

重定向_输出重定向

一个命令执行: 
先有一个输入:输入可以从键盘,也可以从文件得到 
命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕 
命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕 

 

默认条件下,输入是终端,标准输出和错误输出也都是终端,可以用重定向来改变这些设置。

 

重定向符号

>               输出重定向到一个文件或设备 覆盖原来的文件
>!              输出重定向到一个文件或设备 强制覆盖原来的文件
>>             输出重定向到一个文件或设备 追加原来的文件
<               输入重定向到一个程序 


标准错误重定向符号

2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell
2>>           将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1         将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>&             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  c-shell
|&              将一个标准错误 管道 输送 到另一个命令作为输入

 

自己的例子:

xbwang@xbwang-desktop:~/stanford-segmenter-2016-10-31$ sh segment.sh ctb test.simp.utf8 UTF-8 0 > res

之后就在stanford-segmenter-2016-10-31这个文件夹下生成一个名叫res的文件,并把内容输出到了这个文件里(实际上和python的文件读写类似)