Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5762536
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类:

2006-07-18 17:16:15

wangyao@fisherman:~$ cat > file<> 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.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中。如果不加限制,他将会变得无穷大。
阅读(877) | 评论(0) | 转发(0) |
0

上一篇:shell中的:

下一篇:python中的类属性

给主人留下些什么吧!~~