Linux删除文件内容的方法

有时候需要将一个文件内容进行重新编写,可能经常想到的是使用rm命令直接删掉,然后再touch新建,vi进去编写新的内容。

有没有简单办法只将文件内容清空而不删除文件呢?

1.使用echo "" > file_name,直接将空字符串重定向并覆盖到目标文件。

[storm@nimbus-storm-pre jch]$ cat error.txt

data1.txt

error.txt

redirect.txt

test1

[storm@nimbus-storm-pre jch]$ echo "" > error.txt

[storm@nimbus-storm-pre jch]$ cat error.txt

[storm@nimbus-storm-pre jch]$

2.使用cat /dev/null > file_name,读取dev目录下的一个null文件,并重定向覆盖目标文件,类似方法1。

[storm@nimbus-storm-pre jch]$ cat error.txt

data1.txt

error.txt

redirect.txt

test1

[storm@nimbus-storm-pre jch]$ cat /dev/null > error.txt

[storm@nimbus-storm-pre jch]$ cat error.txt

[storm@nimbus-storm-pre jch]$

3.使用vi命令进入vim编辑器,在指令模式下(进入方法,输入冒号:)输入 %d,即可清空整个文件。

当文件内容较大时可能会执行较慢。最后别忘了wq保存。

[storm@nimbus-storm-pre jch]$ vim error.txt

data1.txt

error.txt

redirect.txt

test1

~

~

~

:%d

:wq