开发者社区> 问答> 正文

[转载]快速清空和删除Linux文件内容的几种方法



1、高效的删除日志文件的方法:


错误的删除log文件:rm -f logfile
原因:应用已经打开文件句柄,直接删除会造成:

  1. 应用无法正确释放日志文件和写入
  2. 显示磁盘空间未释放

正确的方法:cat /dev/null > logfile
把一下代码保存为.sh后缀脚本来运行即可清除Linux系统日志#!/bin/sh  cat /dev/null > /var/log/syslogcat /dev/null > /var/adm/sylogcat /dev/null > /var/log/wtmpcat /dev/null > /var/log/maillogcat /dev/null > /var/log/messagescat /dev/null > /var/log/openwebmail.logcat /dev/null > /var/log/maillogcat /dev/null > /var/log/securecat /dev/null > /var/log/httpd/error_logcat /dev/null > /var/log/httpd/ssl_error_logcat /dev/null > /var/log/httpd/ssl_request_logcat /dev/null > /var/log/httpd/ssl_access_logcat /dev/null > /usr/local/nginx/logs/access.logcat /dev/null > /usr/local/nginx/logs/error.log
其它几种类似的方法:$ : > filename #其中的 : 是一个占位符, 不产生任何输出.$ > filename$ echo “” > filename$ echo /dev/null > filename$ echo > filename

2、高效的删除琐碎文件的方法:


利用rsync --delete将目标文件夹以一个空的文件夹来替换。rsync功能很强大,与--exclude结合起来使用,可以选择性的删除文件。
测试:
1、创建测试的1万文件mkdir test_dir && cd test_dir && touch file{1..10000}.txt
2、使用rsync命令删除文件➜  time rsync -a --delete ~/test_dir/* /tmp/rsync -a --delete ~/test_dir/* /tmp/  0.05s user 0.03s system 66% cpu 0.120 total
3、使用find命令删除文件➜  time find ~/test_dir -type f -deletefind ~/test_dir -type f -delete  0.01s user 0.17s system 88% cpu 0.203 total
4、使用find与xargs删除文件➜  time find ~/test_dir -type f | xargs -L 100 rmfind ~/test_dir -type f  0.01s user 0.01s system 7% cpu 0.273 totalxargs -L 100 rm  0.02s user 0.05s system 21% cpu 0.322 total
5、使用find与xargs指定一次处理的数量➜  time find ~/test_dir -type f | xargs -L 100 -P 100 rmfind ~/test_dir -type f  0.01s user 0.01s system 9% cpu 0.161 totalxargs -L 100 -P 100 rm  0.03s user 0.12s system 61% cpu 0.249 total
6、使用传统rm命令删除➜  time rm -rf ~/test_dir/*zsh: sure you want to delete all the files in /root/test_dir [yn]? yrm -rf ~/test_dir/*  0.01s user 0.16s system 95% cpu 0.171 total

展开
收起
我的中国 2017-11-29 22:49:55 2485 0
1 条回答
写回答
取消 提交回答
  •     
    2018-01-25 11:11:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载