什么是在BASH中清空文件内容的最简单方法?

10
我需要删除文件中的所有行,但保留一个没有内容和行的空文件。据我所知,可以这样做:
rm file.txt 2> /dev/null
touch file.txt

然而,在BASH中是否有更简单、更规范的解决方案呢?

你应该查看 https://dev59.com/8XNA5IYBdhLWcg3wZ81R(因为当文件被打开时,即使它被“删除”,它仍然是可访问的)。 - Olivier Dulac
我们的任何回答都对您有所帮助了吗? - fedorqui
3个回答

24

这是我经常使用的一种相当快速的方法:

> file.txt

它完全清空文件并更新修改时间。


1
我使用了一个小变化:true > file.txt。更多信息请参考:https://github.com/koalaman/shellcheck/wiki/SC2188 - undefined

11

您可以使用截断功能。

truncate -s 0 filename

6

清空文件的另一种(残酷的)方法如下:

cat /dev/null > filename

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接