如何快速清空 Linux 中的大文件?

DevOps技术栈

共 1345字,需浏览 3分钟

 · 2022-01-10

文章转载:来自网络,版权归原作者所有,侵删


1. 通过重定向到null清空文件内容

使用 shell 重定向null(不存在的对象)到文件的最简单方法来清空文件内容

# > access.log  

2.使用true命令重定向清空文件

这里我们将使用一个符号,:是一个shell内置命令,本质上等同于true命令

另一种方法是将:true内置命令的输出重定向到文件

# : > access.log  
OR   
# true > access.log

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  

4. 使用 echo 命令清空文件

在这里,你可以使用带有空字符串的echo 命令并将其重定向到文件

# echo "" > access.log  
OR  
# echo > access.log  

空字符串与 null 不同。一个字符串是一个对象,它可能是空的。而null意味着一个不存在的对象。

因此将上面的echo 命令的输出重定向到文件中,并使用cat 命令查看文件内容时,会打印一个空行

要发送一个空输出到文件,使用该标志-n告诉echo 不输出换行符。

# echo -n "" > access.log  

5. 使用 truncate 命令清空文件

truncate命令将文件的大小缩小或扩展到定义的大小。

你可以将它与-s指定文件大小的选项一起使用。要清空文件内容使用-s 0参数。

# truncate -s 0 access.log

- END -

 推荐阅读 

31天拿下K8s含金量最高的CKA+CKS证书! 
比 netstat 好用?Linux 网络状态工具 ss 详解
Linux Shell 脚本编程最佳实践
做了这么多年运维工作,现在才看清职业方向
一篇文章讲清楚云原生图景及发展路线
Gitlab+Jenkins+k8s+Helm 的自动化部署实践
K8s kubectl 常用命令总结(建议收藏)
一名运维小哥对运维规则的10个总结
K8s运维锦囊,19个常见故障解决方法
Linux 系统日常巡检脚本
终于明白了 DevOps 与 SRE 的区别!
编写 Dockerfile 最佳实践
搭建一套完整的企业级 K8s 集群(kubeadm方式)



点亮,服务器三年不宕机

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报