如何在 Linux 上截断文件
对于用户和管理员来说,在 Linux 系统上截断文件是一项相当基本且常见的任务。也许截断(或清空)文件的最常见用途是日志文件。从日志文件中清除大量旧数据,为更新的信息让路,可以使故障排除变得更加容易。
在本教程中,我们将展示在 Linux 命令行上截断文件的几种方法,包括一次截断多个文件。在您自己的系统上使用以下方法,应用您认为最适合您的场景的示例。
注意
只有拥有适当的 Linux 文件权限,您才能截断文件。具体来说,您必须对要截断的文件拥有写入权限。
在本教程中您将学习:
如何使用截断命令
如何使用 Bash shell 运算符清空文件 >
在 Linux 上截断文件的各种示例
如何使用截断命令
truncate 命令可用于通过缩小或放大文件来强制文件达到一定大小。让我们看几个例子来了解如何使用它。我们将从一个包含 11 字节数据的非常基本的文本文件开始。
$ cat file.txt
linuxconfig
要将文件大小减少到 5 字节,我们将使用以下 truncate 命令来指定我们希望文件大小恰好为 5 字节。
$ truncate -s 5 file.txt $ cat file.txt linux正如您所看到的,我们的文件已减少为只显示“linux”,占用 5 个字节的数据。多余的信息已被 truncate 命令删除。
您还可以使用其他单位,例如 K 表示千字节、M 表示兆字节、G 表示千兆字节等。
$ truncate -s 5M file.txt $ ls -lh file.txt -rw-rw-r-- 1 linuxconfig linuxconfig 5.0M Apr 12 22:15 file.txt要完全清空文件,请在命令中使用
-s 0。$ truncate -s 0 file.txt在数字前面添加加号或减号可将文件增加或减少给定的数量。
$ truncate -s +5M file.txt如果您对尝试截断的文件没有适当的权限,通常只需在命令前面加上 sudo 即可。请小心不要对任何重要的系统文件执行此操作。
$ sudo truncate -s 0 file.txt如果您有多个要截断的文件,您可以在命令中指定每个文件名。
$ truncate -s 1M file1.txt file2.txt您还可以在命令中使用通配符一次截断多个文件。
$ truncate -s 1M *.txt
如何使用 Bash shell 运算符清空文件 >
使用以下示例通过使用 > Bash shell 运算符在 Linux 上截断/清空文件。
>运算符是清空文件的最简单且最常见的方法。通过使用此运算符,我们可以简单地将空输出重定向到文件,从而有效地清除整个文件并将其留空。这是如何使用它的示例。$ > data.log尽管示例 1 可能是最简单的,但还有其他方法可以将空输出重定向到文件。这是您可能经常看到的另一种情况。
$ echo "" > data.log另一个可能的例子是重定向
/dev/null,它只是空数据。$ cat /dev/null > data.log您还可以在命令中使用通配符一次截断多个文件。
$ > *.log
结束语
在本指南中,我们看到了在 Linux 上截断文件的各种示例。这包括为文件指定特定大小,以及按一定量缩小和放大文件。我们还了解了如何使用 truncate 命令或 Bash shell 运算符完全清空文件。

