概述
有时我们在处理Linux终端中的文件时,可能要去清除文件的内容,而无需使用任何Linux命令行编辑器打开它。怎么才能实现呢?下面通过几种不同的方式教大家清空文件内容。
1.通过重定向到空来清空文件内容
使用shell重定向null(不存在的对象)清空或清空文件内容的最简单方法,如下所示:
#> access.log
![3fb624385e386f14b40060cbcd3d224d.png](https://i-blog.csdnimg.cn/blog_migrate/06eb95c24e5d6b200d2d47a36f3842cd.jpeg)
2.使用'true'命令重定向清空文件
这里我们将使用一个符号:是一个shell内置命令,它本质上等同于true命令,它可以用作无操作(无操作)。
另一种方法是将输出:或true内置命令重定向到文件,如下所示:
#:> access.logOR#true > access.log
![9b1e1126204ae6679e52c20776a3fb4a.png](https://i-blog.csdnimg.cn/blog_migrate/ce2096a64340cb2ba3df52e834d6abd6.jpeg)
3.使用带/dev/null的cat/ cp/ dd实用程序清空文件
在Linux中,该null设备基本上用于丢弃进程的不需要的输出流,或者作为输入流的合适空文件。这通常通过重定向机制完成。
/dev/null设备文件是一个特殊文件,可以注销(删除)发送给它的任何输入,或者它的输出与空文件的输出相同。
也可以通过/dev/null使用cat命令将输出重定向到它(文件)作为输入来清空文件的内容。
#cat /dev/null> access.log
接下来,使用cp命令来清空文件内容
#cp /dev/null access.log
在以下命令中,if表示输入文件并of引用输出文件。
#dd if=dev/null of=access.log
![cb52ab7e1104dc0a9bad30d2cb8b2c85.png](https://i-blog.csdnimg.cn/blog_migrate/6755c56e3590490be53fe02785230a0b.jpeg)
4.使用echo命令清空文件
使用带有空字符串的echo命令,并将其重定向到文件,如下所示:
#echo “” > access.log或#echo > access.log
注意:空字符串与null不同。字符串已经是一个对象,因为它可能是空的,而null只是意味着不存在对象。
5.使用truncate命令清空文件
截断命令有助于收缩或文件的大小扩大到规定的尺寸。
您可以使用-s指定文件大小的选项。要清空文件内容,请使用大小为0(零),如下一个命令:
#truncate -s 0 access.log
![54d7ade1c06f0da9a25896a1c682eb4d.png](https://i-blog.csdnimg.cn/blog_migrate/f2ccb08452c4bf7ee8f5195bc7a986b6.jpeg)
![e750a075a0d17f04de079da8e7e28c2f.gif](https://i-blog.csdnimg.cn/blog_migrate/02d87eee15b61c9d069e8c32b94e367f.gif)
上面主要介绍了怎么使用简单的命令行实用程序和shell重定向机制清除或清空文件内容的多种方法。这些可能不是唯一可行的方法,大家用自己喜欢的方式去清空就可以了。
后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!!
![c3d062462b666237980b370a3fe11b5e.gif](https://i-blog.csdnimg.cn/blog_migrate/2dacd1bac1870a218a52e2bdc8a1ae5e.gif)