加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

linux重定向到文件中

(2016-11-08 16:41:31)
分类: linux
1. I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9。通常会使用文件描述符来对输出进行重定向,文件描述符的对应关系如下:
   STDIN:    0,标准输入(键盘输入)
   STDOUT:1,标准输出(提示符窗口 )
   STDERR:2,标准错误输出(提示符窗口 )
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 中;
  •     command>>filename: 将command命令的执行结果(不包括标准错误输出附加到filename中
  •     command < filename: 从filename读入,而不是标准输入,eg: cat < test.txt;
  •     command <> filename: 以读写方式打开文件,eg: cat <> test.txt;
3. 命令格式:
  
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:
  1.   find /home -name test* > err_out :标准输出重定向到文件err_out中;
  2.   find /home -name test* 2> err_out :标准错误输出重定向到文件err_out中,标准输出还在屏幕上;
  3.   find /home -name test* 2> err_out 1>&2 :标准错误输出到err_out中,1>&2表明标准输出重定向到标准错误输出,所以最后(标准输出和标准错误)都输出到err_out;
  4. find /home -name test* 2> err_out 2>&12> err_out将标准错误输出重定向到err_out中, 2>&1将标准错误输出重定向到标准输出(提示符窗口),所以最后标准错误输出是在屏幕上。
5. 进阶IO:

>&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;

<&n 标准输入复制自文件描述符 n;

<&- 关闭标准输入(键盘);

>&- 关闭标准输出;

n<&- 表示将 n 号输入关闭;

n>&- 表示将 n 号输出关闭;

通过exec 调用:exec <&-,关闭标准输入

eg:

http://s10/mw690/002zSguHzy76g3wVzXbb9&690

0

阅读 收藏 喜欢 打印举报/Report
后一篇:cat命令
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有