0%

shell IO重定向

重定向没什么难理解的,只是有些命令会不熟悉,这里列出了一些常用的命令,以备后查。

标准输入:键盘,0
标准输出:屏幕,1
标准错误:屏幕,2

1
ls 1> haha.txt

将标准输出1重定向到文件haha.txt。注意1和>之间没有空格。1可以省略,就成了常用的 ls > haha.txt

1
ls 1>>haha.txt

1个>是先清空haha.txt,再写入;两个>是追加到haha.txt后边

1
ls -qw 2> haha.txt

将标准错误重定向到haha.txt

1
ls &> haha.txt

将标准输出、标准错误都重定向到haha.txt

1
i>&j

将文件描述符i重定向到描述符j,也就是现在j也具有了i的能力,应用到i上的IO操作都可以应用到j上,效果一样。

1
2
3
4
5
#echo 123456789 >filename   把字符串写到文件filename中
#exec 3<>filename 把文件filename打开,并指定文件标识符为3
#read -n 4 <&3 从文件中读4个字符,句柄已经指到第四个字符末尾
#echo -n . >&3 在第5个字符处写一个点,覆盖第5个字符,-n表示不换行
#exec 3>&- 关闭文件标识符3

3<>filename 表示用描述符3打开filename
3>&- 表示关闭输出描述符的文件

3<&- 表示关闭输入描述符的文件


参考

  1. IBM的资料:https://www.ibm.com/developerworks/cn/linux/l-iotips/index.html
  2. 不知道这个跟上个是谁抄谁的一部分:https://www.ibm.com/developerworks/cn/linux/l-iotips/index.html