天天看點

清空檔案内容指令之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 不再像上面的那個指令那樣輸出結尾的那個新行。

三、實操

<a href="https://s2.51cto.com/wyfs02/M02/94/DA/wKioL1kPDGaQli5IAABVV8qnYrc580.png-wh_500x0-wm_3-wmp_4-s_509766233.png" target="_blank"></a>

使用cat /dev/null,檔案大小為0

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

本文轉自飛奔的小GUI部落格51CTO部落格,原文連結http://blog.51cto.com/9237101/1922937如需轉載請自行聯系原作者

ziwenzhou

繼續閱讀