清空文件內容命令之echo和/dev/null區別?


我們知道清空文件內容有很多種方法,本文只談論echo "" 和 /dev/null這兩種有什么區別。

一、黑洞設備/dev/null是什么?

在 Linux 中, null 設備基本上被用來丟棄某個進程不再需要的輸出流,或者作為某個輸入流的空白文件,這些通常可以利用重定向機制來達到。

所以 /dev/null 設備文件是一個特殊的文件,它將清空送到它這里來的所有輸入,而它的輸出則可被視為一個空文件。

另外,你可以通過使用 cat 命令 顯示 /dev/null 的內容然后重定向輸出到某個文件,以此來達到清空該文件的目的。通過使用cat /dev/null,文件大小為0字節。

 

二、兩者主要區別?

空字符串並不等同於 null 。字符串表明它是一個具體的事物,只不過它的內容可能是空的,但 null 則意味着某個事物並不存在。

基於這個原因,當你將 echo 命令 的輸出作為輸入重定向到文件后,使用 cat 命令 來查看該文件的內容時,你將看到一個空白行(即一個空字符串)。

要將 null 做為輸出輸入到文件中,你應該使用 -n 選項,這個選項將告訴 echo 不再像上面的那個命令那樣輸出結尾的那個新行。

 

三、實操

 

 

 

 

使用cat /dev/null,文件大小為0,,但是發現使用了cat /dev/null 清空日志文件之后,會出現日志不繼續往文件寫入,需要重啟應用才可以。所以清空日志的時候  還是推薦  echo "" 

而使用echo "" ,文件大小為1,這是因為echo只是寫入了一個空字符串到文件中去。如果想讓文件大小為0,則使用echo -n ""

 

原文:https://www.linuxidc.com/Linux/2018-01/150087.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM