递归清空某文件夹所有文件
最近不小心把家里的小机器系统搞挂了,装了三天机,现在算装好了,不过发现有个盘(/var/log)空间只有45M,真是坑爹啊!没办法了,只好每隔一段时间将日志文件清空算了,开始使用echo "" > file方法来清空,发现文件是清空了,空间没降下来!后来换成truncate就好了!!
#!/bin/bash # 指定要清空的目录 log_dir="/var/log/" # 使用find命令递归查找文件并清空内容 find "$log_dir" -type f -exec truncate -s 0 {} \; echo "已清空/var/log/目录下的所有文件。"
truncate -s 0 filepath,不管文件是否锁定都可以清空。