一:基础知识。
1:linux下的所有操作都是与文件相关的(stdout/stderr/stdcin都是特殊的文件),所以I/O重定向是与FD紧密相关的。
2:shell的FD为10个(0 - 9),常用FD有:0(stdcin),1(stdcout),2(stderr)。
3:<:指定input,>:指定output。
4:<的默认值为0,>默认值是1,因此< 与 0<,>与 1>是等价的。
5:n>&m:重定向FD n到FD m。eg. 2>&1把stderr重定向到stdout。
6:I/O重定向中,stdout和stderr管道先于stdcin准备好。
二:例子。
1:cmd > file:把stdout重定向到file中去。
2:cmd >> file:把stdout追加到file中去。
3:cmd >& file:把stdout和stderr重定向到file中去。
4:cmd > file 2>&1:把stdout和stderr重定向到file中去。
5:cmd 2> file:把stderr追加到file中去。
6:cmd < file >file2:cmd以file为input,file2为output。
1:linux下的所有操作都是与文件相关的(stdout/stderr/stdcin都是特殊的文件),所以I/O重定向是与FD紧密相关的。
2:shell的FD为10个(0 - 9),常用FD有:0(stdcin),1(stdcout),2(stderr)。
3:<:指定input,>:指定output。
4:<的默认值为0,>默认值是1,因此< 与 0<,>与 1>是等价的。
5:n>&m:重定向FD n到FD m。eg. 2>&1把stderr重定向到stdout。
6:I/O重定向中,stdout和stderr管道先于stdcin准备好。
二:例子。
1:cmd > file:把stdout重定向到file中去。
2:cmd >> file:把stdout追加到file中去。
3:cmd >& file:把stdout和stderr重定向到file中去。
4:cmd > file 2>&1:把stdout和stderr重定向到file中去。
5:cmd 2> file:把stderr追加到file中去。
6:cmd < file >file2:cmd以file为input,file2为output。