请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux枚举 大于指定大小文件的地点 目次 的方法

[复制链接]
查看87 | 回复3 | 2021-9-5 04:27:04 | 显示全部楼层 |阅读模式

在Linux体系 中,常常必要 清算 一些比较大的文件来扩充磁盘的可用空间。但是清算 这些文件之前就要先找到这些文件,或者是把大文件Linux目次 全都枚举 出来。本文就以awk下令 为例子,先容 一下Linux怎样 枚举 大于指定大小文件的地点 目次 。一起去看看吧!

Linux枚举
大于指定大小文件的地点
目次
的方法

业务背景

/home/pms目次 是工作目次 ,如今 该目次 占用硬盘空间过大,必要 清算 ,如今 必要 枚举 该目次 中全部 大于200MB的子文件目次 ,以及该子文件目次 的占用空间

脚本实现

du -h --max-depth=10 /home/pms/* | awk ‘{ if($1 ~ /M/){split($1, arr, “M”)}; if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]》200)) {printf “%-10s %s\n”, $1, $2} }’ | sort -n -r

此中

du -h --max-depth=10 /home/pms/*

效果 如下

$ du -h --max-depth=10 /home/pms/*

0 /home/pms/addressCountMap

12K /home/pms/bigDataEngine/conf

1.7M /home/pms/bigDataEngine/analysis/warning

33M /home/pms/bigDataEngine/analysis/log

...

下面这个awk语句,作用是判定 第一个参数,举行 字符串匹配,假如 是M的话,按字符M举行 截取

if($1 ~ /M/){split($1, arr, “M”)};

下面这个awk语句,作用是判定 第一个参数,举行 字符串匹配:

1、M,判定 容量是否大于200MB,是则直接输出参数1和参数2

2、直接输出参数1和参数2

if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]》200)) {printf “%-10s %s\n”, $1, $2}

输出效果

$ du -h --max-depth=10 /home/pms/* | awk ‘{ if($1 ~ /M/){split($1, arr, “M”)}; if(($1 ~ /G/) || ($1 ~ /M/ && arr[1]》200)) {printf “%-10s %s\n”, $1, $2} }’ | sort -n -r

以上内容就是小编为大家带来的关于Linux枚举 大于指定大小文件的地点 目次 的方法了,把大文件目次 枚举 出来,就可以对它们举行 批量删除了。盼望 可以帮助到大家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 成圣 | 2021-10-4 09:16:38 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

avatar 冰下的火圆 | 2021-10-7 15:46:03 | 显示全部楼层
今天是个特别的日子,值得纪念!
回复

使用道具 举报

avatar 123457865 | 2021-10-15 23:14:16 | 显示全部楼层
被admin楼主的逻辑打败了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则