分享

shell命令清空文件

 海漩涡 2014-12-17
本帖最后由 seeLnd 于 2011-11-25 16:49 编辑

> file  的意思是将“标准输出”的内容写入file, 如果file不存在,就新建一个,如果存在,就将其truncat为0大小。 而且这些动作在命令启动之前就要先做好,完了再启动 > 之前的命令。

cat /dev/null >file   看起来好像是cat将file清空了,其实不然,在cat进程即将要启动的前一步,file就已经被shell清空了,于是shell再等待cat的输出,结果cat什么都没输出,于是整个过程就结束了,file自然就是空文件了。

根据以上所述,只要没有往“标准输出”输出内容的命令,都可以达到同样效果,因为清空文件的事儿是shell来负责的,如:
true  >file
echo -n ""  >file
gedit  >file   (估计没人这么做,但是只要你的gedit不会向标准输出写入消息,就可以)
no_such_command   >file   (有些shell,在找不到命令时,会往标准输出写错误消息,这样就不行了)
>file (有些shell会语法错误)

反过来我们不用标准输出作为重定向,也是可以的:

echo  haha  2>file   ,一样可以清空file

: > file 清空文件file

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多