当前位置: 技术问答>linux和unix
请问为什么不要在命令流中重复使用相同的文件名
来源: 互联网 发布时间:2016-05-03
本文导语: 在LINUX 程序设计 第三版 里有如下一段话: 如果尝试执行如下命令: cat maydata.txt | sort | uniq | > mydata.txt 你最终将得到一个空文件,因为你在读取文件mydata.txt之前就已经覆盖了这个文件的内容 小弟我无法...
在LINUX 程序设计 第三版 里有如下一段话:
如果尝试执行如下命令:
cat maydata.txt | sort | uniq | > mydata.txt
你最终将得到一个空文件,因为你在读取文件mydata.txt之前就已经覆盖了这个文件的内容
小弟我无法理解!请各位大虾们解释下!先谢了!!
如果尝试执行如下命令:
cat maydata.txt | sort | uniq | > mydata.txt
你最终将得到一个空文件,因为你在读取文件mydata.txt之前就已经覆盖了这个文件的内容
小弟我无法理解!请各位大虾们解释下!先谢了!!
|
应该不是新建mydata.txt。
>是覆盖的,就是先清空原文件内容。
>> 则是append模式,即加在原文件内容之后
举个例子
robby@debian:~$ cat mydata.txt
asdf
afsf
robby@debian:~$ cat mydata.txt | sort >> mydata.txt
robby@debian:~$ cat mydata.txt
asdf
afsf
afsf
asdf
robby@debian:~$ cat mydata.txt | sort > mydata.txt
robby@debian:~$ cat mydata.txt
robby@debian:~$
>是覆盖的,就是先清空原文件内容。
>> 则是append模式,即加在原文件内容之后
举个例子
robby@debian:~$ cat mydata.txt
asdf
afsf
robby@debian:~$ cat mydata.txt | sort >> mydata.txt
robby@debian:~$ cat mydata.txt
asdf
afsf
afsf
asdf
robby@debian:~$ cat mydata.txt | sort > mydata.txt
robby@debian:~$ cat mydata.txt
robby@debian:~$
|
lz 用的是两个不同的文件名
如果要解释原因的话,要看看命令执行的顺序
执行的时候,应该先会建一个新的 mydata.txt,就把原来的覆盖了
等到要 cat 时已经是一个空文件
如果要解释原因的话,要看看命令执行的顺序
执行的时候,应该先会建一个新的 mydata.txt,就把原来的覆盖了
等到要 cat 时已经是一个空文件