ceacer 2 已发布 1月30号 分享 已发布 1月30号 经过一段时间使用后,我们会发现Linux的可用磁盘空间越来越少,这时我们就需要准确地定位哪些文件或者哪些目录占用了空间,并且有按大小排序文件或目录的需求。 那么,如何使用Linux命令对系统文件中的目录或者文件进行统计,并查找出Linux系统上最大的文件呢? 通常我们有必要需要知道哪些文件或者目录正在吞噬着磁盘空间。更进一步来说,就是需要在文件系统中的特定目录如 /tmp, /var 或者 /home 下查找。这篇文章将帮助我们在文件系统中查找最大的文件或目录。 linux查找最大文件15个实用案例 2. linux按硬盘空间占用的大小查找文件或者目录相关的命令 这里没有简单的命令让我们在 Linux/UNIX/BSD 文件系统中找到最大的文件/目录。但我们可以通过如下的四个命令组合使用来实现: du命令:估计磁盘空间使用量 sort命令:排序 head命令:取前几条输出 find命令:查找文件 3. linux查找最大文件和目录(文件夹)实用案例 在控制台输入如下命令找出/var/mysql目录下最大的 10 个文件和目录: [root@zcwyou ~]# du -a /var/mysql -h | sort -n -r | head -n 10 如果需要更佳的可读性,可以执行以下命令: [root@zcwyou ~]# cd /path/to/some/where [root@zcwyou ~]# du -hsx * | sort -rh | head -10 linux查找最大文件和目录(文件夹)实用案例 参数解释:du -h : 以人可读的格式显示 (eg. 1K, 234M, 2G) du -s : 显示每个参数的总数。 (summary) du -x : 排除目录 sort -r : 逆序 (reverse) sort -h : human readable head -10 或者 head -n 10 : 显示前 10 条。 用如下的命令找出/usr/share/zcwyou目录和其子目录下最大的文件: [root@zcwyou ~]# find /usr/share/zcwyou -printf '%s %pn'| sort -nr | head -10 找出当前目录和其子目录下最大的文件: [root@zcwyou ~]# find . -printf '%s %pn'| sort -nr | head -10 我们可以跳过某些特定目录,仅显示文件,输入: [root@zcwyou ~]# find /path/to/search/ -type f -printf '%s %pn'| sort -nr | head -10 或者 [root@zcwyou ~]# find /path/to/search/ -type f -iname "*.mp4" -printf '%s %pn'| sort -nr | head -10 或者建立一个命令别名,用命令abc代替du -cks * | sort -rn | head 采用 alias alias abc='du -cks * | sort -rn | head' 运行如下命令来获取最大的 10 个文件或目录: [root@zcwyou ~]# abc 4. linux查找最大文件和目录(文件夹)常见应用场景 du命令的常用使用场景 使用语法 du -sh [dirname|filename] 统计并显示当前目录占用的磁盘空间大小 [root@zcwyou ~]# du -sh . 当前目录下个文件或目录的大小: [root@zcwyou ~]# du -sh * 显示前10个占用空间最大的文件或目录: [root@zcwyou ~]# du -s * | sort -nr | head 选项-h 以人类易读的格式显示指定目录或文件的大小 选项-s 选项指定对于目录不详细显示每个子目录或文件的大小 找到Linux磁盘或目录中最大的n个文件 du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了: 在目录/var/zcwyou中统计文件和目录大小,使用du命令,du -k选项表示文件大小显示为KB,之后按照大小排序,显示前n行,这里n=10: [root@zcwyou ~]# du -ak /var/zcwyou | sort -nrk 1 | head -n 10 上面的命令不但显示文件,而且显示目录,如果不想显示目录,可以先用find命令找出所有的文件,再执行上面的命令: [root@zcwyou ~]# find /var/zcwyou -type f -exec du -k '{}' ; | sort -nrk 1 | head -n 10 下面的命令同样可以实现类似的效果: [root@zcwyou ~]# find /var/zcwyou -type f -exec ls -l '{}' ; | awk '{print $5,$NF}' | sort -nrk 1 | head -n 10 上面的命令查找的都是目录及子目录下的文件,如果不找子目录,那就简单了,因为ls有个选项,可以按照文件大小排序,执行以下命令 [root@zcwyou ~]# ls -lhS /home/zcwyou | head -n 11 linux查找最大文件和目录(文件夹)常见应用场景 5. Linux 查找最大的文件夹 运维的时候经常遇到df -h磁盘空间快满了的情况,一般来说是由于循环日志过大导致 。 使用下面的命令,能更快地定位问题所在。 案例:查找根目录下的最大文件夹: [root@zcwyou ~]# cd / [root@zcwyou ~]# du -sh ./* sort Linux 查找最大的文件夹 6. 结合`find`命令找到Linux文件系统里最大的10个文件 使用方法如下: [root@zcwyou ~]# find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10 7. linux查找最大文件或目录相关的命令应用 命令作用find搜索文件命令/在整个/目录搜索-type指定文件类型f类型为普通文件-print0标准输出完整文件名,后跟空字符(null)|管道符,前的命令给后的命令处理xargs把标准输出转换为命令行参数-0以空字符(null)来分割记录du -h查看磁盘使用情况(可读格式计算)sort文本排序-r反转结果-h打印输出(可读格式)head开头n -10打印前十 8. 总结 在Linux系统里灵活结合各种命令工具,可以非常高效地根据各种条件找到相关的文件。 本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接: https://www.linuxrumen.com/rmxx/1128.html 点击了解更多,快速查看更多的技术文章列表。 评论链接 在其他网站上分享 更多分享选项...
推荐帖
创建账户或登录以发表评论
您需要成为会员才能发表评论
创建一个帐户
在我们的社区注册一个新账户。很简单!
注册新账户登入
已有账户?在此登录
立即登录