在 Linux 中清空或删除大文件内容的 5 种方法

有时,在 Linux 终端中处理文件时,您可能希望清除文件的内容,而不必使用任何命令打开它。如何才能实现这一目标?

在本文中,我们将借助一些有用的命令介绍几种清空文件内容的不同方法。

警告:在我们继续研究各种方法之前,请注意,因为,您必须始终确保要清空的文件不是重要的用户或系统文件。清除关键系统或配置文件的内容可能会导致致命的应用程序/系统错误或故障。

话虽如此,以下是从命令行清除文件内容的方法。

重要的:为了本文的目的,我们使用了该文件access.log在以下示例中。

1.通过重定向到Null来清空文件内容

使用 shell 重定向清空或清空文件内容的最简单方法null(不存在的对象)到文件中,如下所示:

# > access.log
在 Linux 中使用 Null 重定向清空大文件

2. 使用“true”命令重定向清空文件

这里我们将使用一个符号:是一个 shell 内置命令,本质上相当于true命令,它可以用作无操作(无操作)。

另一种方法是重定向输出:或者true文件的内置命令如下所示:

# : > access.log
OR 
# true > access.log
使用 Linux 命令清空大文件

3. 清空文件使用 cat/cp/dd 实用程序和 /dev/null

在 Linux 中,null设备基本上用于丢弃进程不需要的输出流,或者作为输入流的合适的空文件。这通常是通过重定向机制来完成的。

还有/dev/null因此,设备文件是一个特殊文件,它会注销(删除)发送给它的任何输入,或其输出与空文件的输出相同。

此外,您可以通过重定向输出来清空文件的内容/dev/null使用以下命令将其(文件)作为输入:

# cat /dev/null > access.log
使用 cat 命令清空文件

接下来,我们将使用清空文件内容,如图所示。

# cp /dev/null access.log
使用 cp 命令清空文件内容

在下文中,if表示输入文件和of指输出文件。

# dd if=/dev/null of=access.log
使用 dd 命令清空文件内容

4.使用echo命令清空文件

在这里,您可以使用使用空字符串并将其重定向到文件,如下所示:

# echo "" > access.log
OR
# echo > access.log
使用 echo 命令清空文件

笔记:您应该记住,空字符串与 null 不同。字符串已经是一个对象,因为它可能是空的,而 null 只是意味着对象不存在。

因此,当您重定向出将上面的内容写入文件,然后使用查看文件内容,打印一个空行(空字符串)。

要将空输出发送到文件,请使用标志-n这告诉回声不输出导致上一个命令中生成的空行的尾随换行符。

# echo -n "" > access.log
使用 Null 重定向的空文件

5. 使用 truncate 命令清空文件

截短命令有助于到定义的尺寸。

您可以将其与-s指定文件大小的选项。要清空文件内容,请使用大小 0(零),如以下命令所示:

# truncate -s 0 access.log
Linux 中截断文件内容

现在就这样,在本文中,我们介绍了使用简单的命令行实用程序和 shell 重定向机制清除或清空文件内容的多种方法。

这些可能不是唯一可用的实用方法,因此您还可以通过下面的反馈部分告诉我们本指南中未提及的任何其他方法。