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