您会发现自己处于需要清空文件的情况。 当您拥有大量日志文件时,通常会发生这种情况,您将如何做到这一点?
一种不太干净的方法是删除文件,然后创建一个新文件。 但这不是一个好主意。 它不会是同一个文件,时间戳(atime、mtime 等)将与其他文件权限不同。
您可以删除其内容,而不是创建新的空文件。 那么,如何在 Linux 中清空文件呢? 如何从文件的所有内容中清除文件而不删除实际文件?
在 Linux 中清空文件的 4 种方法
有几种方法可以清空文件而不实际删除文件。 让我向您展示其中的一些方法。
方法一:使用 truncate 命令截断文件
截断日志文件最安全的方法是使用 truncate 命令。
truncate -s 0 filename
在上述命令中,-s 用于设置/调整文件的大小(以字节为单位)。 当您使用 -s 0 时,这意味着您将文件大小调整为 0 字节。 在
方法 2:使用 :> 或 > 清空文件
清空文件的最简单方法是使用以下命令。 如果该文件未在使用中,它将在 Bash 中工作:
> filename
虽然以上仅适用于 Bash Shell,但您可以对其他 shell 使用类似的命令:
:> filename
您还可以使用此命令清除文件:
true > filename
方法3:在Linux中使用echo命令清空文件
清空文件的另一种方法是通过 Linux 中的 echo 命令:
echo > filename
您也可以通过这种方式使用 echo 命令:
echo "" > filename
方法四:使用 /dev/null 清除文件
您还可以使用著名的 /dev/null 并结合 cat 命令清除日志文件:
cat /dev/null > file.log
到底…
如果您对上述任何命令都没有足够的权限,那么这是肯定的,但实现它的方式有点肮脏:
touch newfile
mv newfile filename
你也可以通过删除 Vim 编辑器中的所有行来清空文件。
如果您的目标是清除日志文件并腾出一些可用空间,您应该了解如何清理日志日志。
我希望这个快速提示可以帮助您在 Linux 中清除文件。 请为我们添加书签以获取更多 Linux 快速提示。