Linux系統中一切皆文件。
所以在清空或刪除文件之前一定要確保該文件不是系統文件或者其他重要配置文件,否則可能引發系統錯誤。
一、通過重定向來清空文件內容
該方法是最簡單的,通過shell重定向null到指定文件即可
$ > system.log
還有兩個重定向方法:
重定向:或者true到指定文件
$ :> system.log
或者
$ true > system.log
二、使用cat/cp/dd使用工具和/dev/null設備來清空文件內容
/dev/null文件是一個特殊的文件,它將清空重定向到它的輸出,而它的輸入是個空白文件,什么內容也沒有
關於/dev/null設備的詳細內容可以參見:Shell—輸入/輸出重定向
因此,可以使用cat命令查看/dev/null文件的內容,然后重定向輸出到指定文件,達到清空的目的
$ cat /dev/null > system.log
同理:
可將/dev/null文件的內容復制到指定文件,達到清空的目的
$ cp /dev/null system.log
三、使用echo命令清空文件內容
可以使用echo命令將空字符串重定向到指定文件,來清空文件內容
$ echo "" > system.log
或者
$ echo > system.log
注意:該方法雖然清空了文件的內容,但是文件會包含一個空字符串,使用cat命令查看時,將看到一個空白行
因為空字符串不等於null,空字符串只能說明它的內容為空,而null則表示該事物不存在!
要想徹底清空文件內容,可以使用echo命令的-n選項,該選項將告訴echo,不再輸出一個空白行
$ echo -n "" > system.log
四、使用truncate命令來清空文件內容
truncate命令可以將一個文件縮小或者擴展到某個給定的大小
可以利用該命令和-s選項來特別指定文件的大小
$ truncate -s 0 system.log