一 简介
Windows中删除文件或清空文件内容很简单。
但是在Linux中,有些时候,我们不想打开文本编辑器去删除文件的内容。想通过命令去实现这一功能,下面就为大家介绍几种方法!
注意:
Linux系统中一切皆文件。
所以在清空或删除文件之前一定要确保该文件不是系统文件或者其他重要配置文件,否则可能引发系统错误。
二 几种方法简介
1、通过重定向来清空文件内容
该方法是最简单的,通过shell重定向null到指定文件即可
$ > access.log (后面指的是文件名)
还有两个重定向方法:
重定向:或者true到指定文件
$ : > access.log
或者:
true > access.log
2.使用cat/cp/dd使用工具和/dev/null设备来清空文件内容
/dev/null文件是一个特殊的文件,它将清空重定向到它的输出,而它的输入是个空白文件,什么内容也没有
关于/dev/null设备的详细内容可以参见:Shell—输入/输出重定向
因此,可以使用cat命令查看/dev/null文件的内容,然后重定向输出到指定文件,达到清空的目的
$ cat /dev/null > access.log
同理:可将/dev/null文件的内容复制到指定文件,达到清空的目的
$ cp /dev/null access.log
3.使用echo命令清空文件内容
可以使用echo命令将空字符串重定向到指定文件,来清空文件内容:
$ echo "" > access.log
或者:
$ echo > access.log
注意:
该方法虽然清空了文件的内容,但是文件会包含一个空字符串,使用cat命令查看时,将看到一个空白行
因为空字符串不等于null,空字符串只能说明它的内容为空,而null则表示该事物不存在!
要想彻底清空文件内容,可以使用echo命令的-n选项,该选项将告诉echo,不再输出一个空白行
4.使用truncate命令来清空文件内容
truncate命令可以将一个文件缩小或者扩展到某个给定的大小
可以利用该命令和-s选项来特别指定文件的大小
$ truncate -s 0 access.log
总结:通常情况下,主要是使用重定向来实现清空文件内容。
以上几种方法仅供参考,可能还有其他更好的方法,我们一起来学习!!!