偶尔,在Linux终端在处理文件,你可能想要清空的内容文件而不打开使用任何Linux命令行编辑器。这该如何实现呢?在本文中,我们将在一些有用的命令帮助下通过几个不同的方法清空文件内容。
警告: 在我们继续深入各种方法之前,请注意,因为在Linux一切都是文件,您必须确保你清空的用户文件或系统文件不重要。清空的内容是关键系统文件或配置文件可能导致致命的应用程序/系统错误或失败。
说了这么多,下面是进入从命令行清空文件内容的方法。
重要: 我们在本文后续的例子中使用 access.log 文件。
1. 清空文件通过重定向到Null
一个最简单的清空文件内容的方法是如下使用shell重定向null(不存在的对象)到文件
# > access.log
2. 清空文件使用“true”命名重定向
这里我们将使用符号** : ** 也是一个shell内置命令,本质上等同于** true ** 命令,它可以当作作一个空操作符。
另一种方法是将内置命令 ** : ** 或 ** true ** 的输出重定向到文件如下所示:
# : > access.logOR # true > access.log
3. Empty File Using cat/cp/dd utilities with /dev/null
在Linux中,null设备基本上是用于过程中丢弃不需要的输出流,或是一个作为输入流的合适的空文件。这通常是通过重定向机制实现。
因此,** /dev/null ** 设备文件是一种特殊的文件,将删除任何发送到它的输入或是输出一个空文件。
扩展一下,您可以通过使用** cat ** 命名重定向** /dev/null ** 的输出内容到文件实现清空文件内容。
# 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
注意: 你应该知道,一个空(empty)字符串并不等于空(null)。字符串已经是一个对象,它可能是empty的而null则意味着不存在的对象。
基于这个原因,当你用** echo ** 命令重定向以上文件,并使用** cat ** 命令查看文件内容,输出一个空行(空字符串)。
发送一个null输出到文件,使用标志- n这告诉* echo *输出后不换行,而前面的命令产生的空行。
# echo -n "" > access.log
5.清空文件使用 truncate 命名
truncate 命令有助于缩小或扩展文件尺寸到定义的大小。
您可以使用- s选项来指定的文件大小。下一个命令通过指定文件大小为0来清空文件内容:
# truncate -s 0 access.log
现在,在本文中,我们已经介绍了清算或清空文件内容的多个方法使用简单的命令行实用工具和shell重定向机制。但这些可能不是唯一切实可行的方法这样做。