其实,只是一个很简单的问题。
我想查找当前目录的文件中包含字符"abcd"的信息是什么,于是就grep了一下,但是发现输出信息比较多,于是就决定重定向一下。
然后,就发现了SHELL的失误之处。
因为,这条简简单单的SHELL命令一直不中止:
grep "abcd" * > my.log
于是,我就Ctrl+C中止了它,结果发现新生成的文件my.log个头暴增,用vi查看它时险些死机 ^_^
很显然,SHELL在解释通配符"*"时将my.log也算进去了。
问题来了,在重定向时,SHELL是应该先解释通配符呢还是应该先创建文件呢?
记得以前在HP-UX下经常执行这样的操作,也没有出过问题,看来不同的平台、不同的SHELL是有较大的不同的。
注:平台 SunOS 5.8,SHELL /bin/csh