快速定位linux服务器磁盘占用较大的文件位置

该文介绍了在Linux系统中如何使用du命令查看目录下文件的磁盘占用情况,以及利用find命令清空特定类型文件(如.log)的内容,同时保留文件本身。通过du-ah--max-depth=10配合sort和head可以快速定位大文件,find命令则用于有效清理指定扩展名的文件。
摘要由CSDN通过智能技术生成

1、查看目录下文件或目录所占用的磁盘空间大小

查10级目录文件大小、倒序、前20

# du:指定计算目录或文件所占用的磁盘空间大小。
# -ah:以人类可读的方式显示磁盘空间大小,即将数字转换为K,M,G等易读的单位。
# --max-depth=10:显示目录结构的最大深度为10级。在本例中,这意味着只显示包含指定目录(/)的所有目录和文件的总体大小,但是对于更深的目录结构,我们将无法看到其详细信息。
# /:指定要计算大小的目录。
# 2>/dev/null:忽略标准错误输出,将其重定向到/dev/null设备上,这样我们就不会看到任何错误信息。
# sort -hr:按照文件大小进行排序,h表示按照人类可读的格式,r表示反向排序。
# head -n 30:显示排序后的前30个结果。
du -ah --max-depth=10 / 2>/dev/null | sort -hr | head -n 30

2、清空文件夹下指定类型的文件内容,保留文件

命令会直接清空.log文件内容,因此请在使用前确保您已经备份了需要保留的文件内容。

# /path/to/folder为需要清空.log文件的文件夹路径。
# -name "*.log"表示只匹配后缀为.log的文件;
# -type f表示只处理文件类型(不包括目录等其他类型);
# -exec truncate -s 0 {} \;表示对于匹配的每一个文件,执行truncate -s 0命令将文件大小截为0,即清空文件内容。
# 这里使用了truncate命令而非echo "" > filename.log的方式清空文件内容,是因为truncate命令可以更快速地清空大文件
find /path/to/folder -name "*.log" -type f -exec truncate -s 0 {} \;
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值