1. 程式人生 > >清空文件內容命令之echo和/dev/null區別?

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

linux 字符串 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

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


本文出自 “飛奔的小GUI” 博客,請務必保留此出處http://9237101.blog.51cto.com/9227101/1922937

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