Windows中删除文件或清空文件内容很简单,但是在Linux中,有些时候,我们不想打开文本编辑器去删除文件的内容,想通过命令去实现这一功能
本文就介绍几种方法,用于清空或删除大文件内容
注意: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/nullsystem.log
三、使用echo命令清空文件内容
可以使用echo命令将空字符串重定向到指定文件,来清空文件内容
$ echo "" >system.log
或者
$ echo >system.log
注意:该方法虽然清空了文件的内容,但是文件会包含一个空字符串,使用cat命令查看时,将看到一个空白行
因为空字符串不等于null,空字符串只能说明它的内容为空,而null则表示该事物不存在!
要想彻底清空文件内容,可以使用echo命令的-n选项,该选项将告诉echo,不再输出一个空白行
$ echo -n "" >system.log
四、使用truncate命令来清空文件内容
truncate命令可以将一个文件缩小或者扩展到某个给定的大小
可以利用该命令和-s选项来特别指定文件的大小
$ truncate -s 0system.log