加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何找出Linux系统中最大的N个文件?讲解15种方法

发布时间:2019-08-23 20:16:17 所属栏目:Windows 来源:Linux学习教程
导读:1. 前言 经过一段时间使用后,我们会发现Linux的可用磁盘空间越来越少,这时我们就需要准确地定位哪些文件或者哪些目录占用了空间,并且有按大小排序文件或目录的需求。 那么,如何使用Linux命令对系统文件中的目录或者文件进行统计,并查找出Linux系统上
副标题[/!--empirenews.page--]

 1. 前言

经过一段时间使用后,我们会发现Linux的可用磁盘空间越来越少,这时我们就需要准确地定位哪些文件或者哪些目录占用了空间,并且有按大小排序文件或目录的需求。

如何找出Linux系统中最大的N个文件?讲解15种方法

那么,如何使用Linux命令对系统文件中的目录或者文件进行统计,并查找出Linux系统上最大的文件呢?

通常我们有必要需要知道哪些文件或者目录正在吞噬着磁盘空间。更进一步来说,就是需要在文件系统中的特定目录如 /tmp, /var 或者 /home 下查找。这篇文章将帮助我们在文件系统中查找最大的文件或目录。

2. linux按硬盘空间占用的大小查找文件或者目录相关的命令

这里没有简单的命令让我们在 Linux/UNIX/BSD 文件系统中找到最大的文件/目录。但我们可以通过如下的四个命令组合使用来实现:

  • du命令:估计磁盘空间使用量
  • sort命令:排序
  • head命令:取前几条输出
  • find命令:查找文件

3. linux查找最大文件和目录(文件夹)实用案例

在控制台输入如下命令找出/var/mysql目录下最大的 10 个文件和目录:

  1. [root@zcwyou ~]# du -a /var/mysql -h | sort -n -r | head -n 10 

如果需要更佳的可读性,可以执行以下命令:

  1. [root@zcwyou ~]# cd /path/to/some/where 
  2. [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目录和其子目录下最大的文件:

  1. [root@zcwyou ~]# find /usr/share/zcwyou -printf '%s %pn'| sort -nr | head -10 

找出当前目录和其子目录下最大的文件:

  1. [root@zcwyou ~]# find . -printf '%s %pn'| sort -nr | head -10 

我们可以跳过某些特定目录,仅显示文件,输入:

  1. [root@zcwyou ~]# find /path/to/search/ -type f -printf '%s %pn'| sort -nr | head -10 

或者

  1. [root@zcwyou ~]# find /path/to/search/ -type f -iname "*.mp4" -printf '%s %pn'| sort -nr | head -10 

或者建立一个命令别名,用命令abc代替du -cks * | sort -rn | head

采用 alias

  1. alias abc='du -cks * | sort -rn | head' 

运行如下命令来获取最大的 10 个文件或目录:

  1. [root@zcwyou ~]# abc 

4. linux查找最大文件和目录(文件夹)常见应用场景

du命令的常用使用场景

使用语法

du -sh [dirname|filename]

统计并显示当前目录占用的磁盘空间大小

  1. [root@zcwyou ~]# du -sh . 

当前目录下个文件或目录的大小:

  1. [root@zcwyou ~]# du -sh * 

显示前10个占用空间最大的文件或目录:

  1. [root@zcwyou ~]# du -s * | sort -nr | head 

选项-h

以人类易读的格式显示指定目录或文件的大小

选项-s

选项指定对于目录不详细显示每个子目录或文件的大小

找到Linux磁盘或目录中最大的n个文件

du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了:

在目录/var/zcwyou中统计文件和目录大小,使用du命令,du -k选项表示文件大小显示为KB,之后按照大小排序,显示前n行,这里n=10:

  1. [root@zcwyou ~]# du -ak /var/zcwyou | sort -nrk 1 | head -n 10 

上面的命令不但显示文件,而且显示目录,如果不想显示目录,可以先用find命令找出所有的文件,再执行上面的命令:

  1. [root@zcwyou ~]# find /var/zcwyou -type f -exec du -k '{}' ; | sort -nrk 1 | head -n 10 

下面的命令同样可以实现类似的效果:

  1. [root@zcwyou ~]# find /var/zcwyou -type f -exec ls -l '{}' ; | awk '{print $5,$NF}' | sort -nrk 1 | head -n 10 

(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读