linux重定向到文件中
| 分类: linux |
1. I/O重定向通常与 FD有关,shell的FD通常为10个,即
0~9。通常会使用文件描述符来对输出进行重定向,文件描述符的对应关系如下:
STDIN:
0,标准输入(键盘输入)
STDOUT:1,标准输出(提示符窗口 )
STDERR:2,标准错误输出(提示符窗口 )
2. 操作符:
command > filename 把标准输出重定向到一个新文件中
command >> filename
把标准输出重定向到一个文件中(追加)
command 1 > fielname
把标准输出重定向到一个文件中
command > filename
2>&1 把标准输出和标准错误一起重定向到一个文件中
command 2 > filename
把标准错误重定向到一个文件中
command 2 >> filename
把标准输出重定向到一个文件中(追加)
command >> filename
2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)
command filename2
把command命令以filename文件作为标准输入,以filename2文件作为标准输出
command &m
把标准输出重定向到文件描述符m中
eg:
2. 操作符:
-
command>filename: 将command命令的结果(不包括标准错误输出)写入filename中,eg: ll /home >list; -
command>!filename: 将command命令的结果(不包括标准错误输出)写入filename中,如果存在,则覆盖; -
command>&filename: 将command命令产生的所有信息(标准输出和标准错误输出)写入filename中,eg: cc file1.c >& error 将编译file1.c 文件时所产生的任何信息写入文件error 中; -
>filename: 将command命令的执行结果(不包括标准错误输出)附加到filename中;command> -
command < filename: 从filename读入,而不是标准输入,eg: cat < test.txt; -
command <> filename: 以读写方式打开文件,eg: cat <> test.txt;
-
find /home -name test* > err_out :标准输出重定向到文件err_out中; -
find /home -name test* 2> err_out :标准错误输出重定向到文件err_out中,标准输出还在屏幕上; -
find /home -name test* 2> err_out 1>&2 :标准错误输出到err_out中,1>&2表明标准输出重定向到标准错误输出,所以最后(标准输出和标准错误)都输出到err_out; - find /home -name test* 2> err_out 2>&1:2> err_out将标准错误输出重定向到err_out中, 2>&1将标准错误输出重定向到标准输出(提示符窗口),所以最后标准错误输出是在屏幕上。
>&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;
<&n 标准输入复制自文件描述符 n;
<&- 关闭标准输入(键盘);
>&- 关闭标准输出;
n<&- 表示将 n 号输入关闭;
n>&- 表示将 n 号输出关闭;
通过exec 调用:exec <&-,关闭标准输入
http://s10/mw690/002zSguHzy76g3wVzXbb9&690
前一篇:欢迎您在新浪博客安家
后一篇:cat命令

加载中…