1. 程式人生 > >[譯]在Linux中清空或刪除大檔案內容的5種方法

[譯]在Linux中清空或刪除大檔案內容的5種方法

原文來源: https://www.tecmint.com/empty-delete-file-content-linux/

有時,在處理Linux終端中的檔案時,您可能希望清除檔案的內容,而無需使用任何Linux命令列編輯器開啟它。怎麼能實現這一目標?在本文中,我們將藉助一些有用的命令,通過幾種不同的方式清空檔案內容。
警告:在我們繼續檢視各種方法之前,請注意,因為在Linux中一切都是檔案,所以必須始終確保要清空的檔案不是重要的使用者或系統檔案。清除關鍵系統或配置檔案的內容可能會導致致命的應用程式/系統錯誤或故障。

就像剛剛說的,下面是從命令列清除檔案內容的方法。
重要說明:出於本文的目的,我們access.log在以下示例中使用了檔案。

1.通過重定向到空來清空檔案內容

使用shell重定向null(不存在的物件)清空或清空檔案內容的最簡單方法,如下所示:

#> access.log

2.使用'true'命令重定向清空檔案

這裡我們將使用一個符號:是一個shell內建命令,它本質上等同於true命令,它可以用作無操作(無操作)。
另一種方法是將輸出:或true內建命令重定向到檔案,如下所示:

#:> access.log 
OR 
#true > access.log

3.使用帶/dev/null的cat/ cp/ dd實用程式清空檔案

在Linux中,該null裝置基本上用於丟棄程序的不需要的輸出流,或者作為輸入流的合適空檔案。這通常通過重定向機制完成。
/dev/null因此,裝置檔案是一個特殊檔案,可以登出(刪除)傳送給它的任何輸入,或者它的輸出與空檔案的輸出相同。
此外,您可以通過/dev/null使用cat命令將輸出重定向到它(檔案)作為輸入來清空檔案的內容。

#cat /dev/null> access.log

接下來,我們將使用cp命令來清空檔案內容,如圖所示。

#cp / dev/null  access.log

在以下命令中,if表示輸入檔案並of引用輸出檔案。

#dd if=dev/null of=access.log

4.使用echo命令清空檔案
在這裡,您可以使用帶有空字串的echo命令,並將其重定向到檔案,如下所示:

#echo “” > access.log 
或
#echo > access.log

注意:您應該記住,空字串與null不同。字串已經是一個物件,因為它可能是空的,而null只是意味著不存在物件。
因此,當您將上面的echo命令重定向到檔案中,並使用cat命令檢視檔案內容時,將列印一個空行(空字串)。
要將空輸出傳送到檔案,請使用-n告知echo的標誌不輸出導致上一個命令中生成的空行的尾部換行符。

#echo -n “”> access.log

5.使用truncate命令清空檔案
截斷命令有助於收縮或檔案的大小擴大到規定的尺寸。
您可以使用-s指定檔案大小的選項。要清空檔案內容,請使用大小為0(零),如下一個命令:

#truncate -s 0 access.log

這就是全部內容了,總結下,在本文中,我們已經介紹了使用簡單的命令列實用程式和shell重定向機制清除或清空檔案內容的多種方法。
這些可能不是唯一可行的實用方法,因此您也可以通過下面的反饋部分告訴我們本指南中未提及的任何其他方法。