温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux系统怎样查找大文件或目录

发布时间:2022-01-25 11:23:21 来源:亿速云 阅读:262 作者:柒染 栏目:开发技术

这篇文章给大家介绍Linux系统怎样查找大文件或目录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、查找大文件方法:

那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件

find . -type f -size +800M -print0 | xargs -0 du -h | sort -nr

注:不过有时候排列的顺序并不完全是按大小一致,这个是因为du命令的参数h所致,你可以统一使用MB(参数m)来显示,这样就能解决这个问题。

备注:

-print0的作用:

-print 在每一个输出后会添加一个回车换行符,-print0则不会,而是输出一个 NULL 字符 (‘\0’) 。

xargs -0的作用:

xargs -0将\0作为定界符。

[bash-4.1.5] ; find -name ‘*.log’ | xargs rm

rm: cannot remove `./file’: No such file or directory

rm: cannot remove `1.log’: No such file or directory

rm: cannot remove `./file’: No such file or directory

rm: cannot remove `2.log’: No such file or directory

原因其实很简单, xargs 默认是以空白字符 (空格, TAB, 换行符) 来分割记录的, 因此文件名 ./file 1.log 被解释成了两个记录 ./file1.log, 不幸的是 rm 找不到这两个文件.

为了解决此类问题, 聪明的人想出了一个办法, 让 find 在打印出一个文件名之后接着输出一个 NULL 字符 (‘\0’) 而不是换行符, 然后再告诉 xargs 也用 NULL 字符来作为记录的分隔符. 这就是 find 的 -print0 和 xargs 的 -0 的来历吧.

二、查找目录:

由于平时又疏于管理,监控文件或日志文件的增长,有时候会占用大量甚至挤爆磁盘空间。

这时需要快速了解哪些目录变得比较大,此时可以借助du命令来帮我们解决这个问题。

du -h –max-depth=1

结果:

16K   ./lost+found

33G   ./flash_recovery_area

37G   ./oradata

70G   .

如果想知道flash_recovery_area目录下面有哪些大文件夹,那么可以将参数max-depth=2

如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示:

du -h –max-depth=2 | sort -n

结果:

3.5G  ./flash_recovery_area/EPPS

16K   ./lost+found

29G   ./flash_recovery_area/backup

33G   ./flash_recovery_area

37G   ./oradata

37G   ./oradata/epps

70G   .

有时候搜索出来的结果太多了(譬如,从根目录开始搜索),一直在刷屏,

如果只想查出最大的10个文件夹,怎么办呢?此时就要借助head命令来显示了

du -hm –max-depth=2 | sort -nr | head -10

结果:

407480 .

167880 ./u04

158685 ./u02/oradata

158685 ./u02

152118 ./u04/oradata

70775  ./u03

37705  ./u03/oradata

33070  ./u03/flash_recovery_area

5995  ./u01/app

5995  ./u01

关于Linux系统怎样查找大文件或目录就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI