文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于重定向的解释

关于重定向的解释

时间:2006-07-18  来源:CUDev

wangyao@fisherman:~$ cat > file<<EOF
> 1 2 3 4 5
> EOF
wangyao@fisherman:~$ cat file
1 2 3 4 5
wangyao@fisherman:~$ cat < file
1 2 3 4 5
wangyao@fisherman:~$ cat <file >file.bak
wangyao@fisherman:~$ cat < file.bak
1 2 3 4 5
wangyao@fisherman:~$ cat < file > file
wangyao@fisherman:~$ cat file

这里最后一条命令是不太好理解的。
   前面提到:$ cat < file > file 之后原本有内容的档案结果却被洗掉了﹗要理解这一现象 其实不难,这只是 priority 的问题而已:
      * IO Redirection 中stdout与 stderr的管道会先准备好才会从stdin读进资料。
也就是说,在上例中,>file 会先将 file 清空,然后才读进 < file ,
但这时候档案已经被清空了,因此就变成读不进任何数据了...  

这个我们还可以做一个测试
wangyao@fisherman:~/bin$ ls
autoftp_ftp.sh  delcomment.sh  ftplgin.sh  ftplogin.sh  google.c  smbadd.sh
wangyao@fisherman:~/bin$ ls > lsfile
wangyao@fisherman:~/bin$ cat lsfile
autoftp_ftp.sh
delcomment.sh
ftplgin.sh
ftplogin.sh
google.c
lsfile
smbadd.sh

这里lsfile里面有lsfile自己,为什么呢?系统是先建立的lsfile文件,再进行的ls操作。
wangyao@fisherman:~$ cat <> file
1 2 3 4 5
wangyao@fisherman:~$ cat file
1 2 3 4 5
这里 cat <> file是从stdin里面输入数据重定向到file
cat <file>>file
这个命令要慎用,因为它会不断的将原来file的内容写到新的file中。如果不加限制,他将会变得无穷大。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载