您的位置:首页 > 其它

I/O 重定向

2016-05-17 14:48 399 查看

1.cmd1 | cmd2 管道符,将cmd1的标准输出作为cmd2的标准输入

2.>filename 将标准输出写到filename文件中,若该文件已存在,则将原来的内容覆盖掉

[root@nn shell]# ls
a  b  input  scr.awk
[root@nn shell]# cat >file1
the world is wonderful![root@nn shell]#                 #按ctrl+d 结束
[root@nn shell]# cat file1
the world is wonderful![root@nn shell]#
当cat后面没有参数的时候,cat命令的输入是标准输入,然后将标准输入写入到文件中

3. <filename 将文件filename的内容读入到标准输入之中

[root@nn shell]# cat scr.awk
#!/bin/awk -f
/^$/{print "THis is a blank line!"}
[root@nn shell]# wc -l scr.awk
2 scr.awk
[root@nn shell]# wc -l <scr.awk
2
[root@nn shell]#


4.>>filename 将标准输出写到filename文件中,若filename存在,则将标准输出追加到filename之后

5. >|filename 即使noclobber 选项已经开启,仍然强制将标准输出写到文件filename之中,即将filename文件覆盖掉

6.n>|filename

7.n>filename 将FD为n的输出写到文件filename中

[root@nn shell]# ls z*
ls: 无法访问z*: 没有那个文件或目录
[root@nn shell]# ls z* >filename2
ls: 无法访问z*: 没有那个文件或目录
[root@nn shell]# cat filename2
[root@nn shell]# ls z* 2>filename2             #将标准错误重定向到filename2文件中
[root@nn shell]# cat filename2
ls: 无法访问z*: 没有那个文件或目录
[root@nn shell]#


8.n<filename 将文件filename的内容读入到FD n中

9.n>>filename 将fd为 n的输出写到filename文件中,若filename存在,则将标准输出追加到filename之后

10. <<delimiter 称为分解符delimiter

shell将分解符delimiter之后直至下一个delimiter之前的所有内容作为输入

cat >> filename3 <<EOF
usr/$LIBDIR/gtk-2.0/modules/libatk-bridge.so
usr/$LIBDIR/gtk-2.0/modules/libgail.so
usr/libexec/bonobo-activation-server
usr/libexec/at-spi-registryd
usr/$LIBDIR/bonobo/servers
usr/libexec/gconfd-2
usr/$LIBDIR/GConf/2/libgconfbackend-xml.so
usr/$LIBDIR/python?.?/site-packages/gtk-2.0/atk.so
usr/$LIBDIR/python?.?/site-packages/gtk-2.0/gconf.so
usr/$LIBDIR/python?.?/site-packages/atspi.so
usr/lib/python?.?/site-packages/dogtail/*.py
EOF


11.-<<delimiter 这样输入文本行所有开头的Tab键 都会北删除,但是开头的空格键不会被删除

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: