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

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

1. 前言

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

04030W619-0.jpg-wh_651x-s_201513441.jpg

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

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

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 %p\n'| sort -nr | head -10

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

[root@zcwyou ~]# find . -printf '%s %p\n'| sort -nr | head -10

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

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

或者

[root@zcwyou ~]# find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p\n'| 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

5. Linux 查找最大的文件夹

运维的时候经常遇到df -h磁盘空间快满了的情况,一般来说是由于循环日志过大导致 。

使用下面的命令,能更快地定位问题所在。

案例:查找根目录下的最大文件夹:

[root@zcwyou ~]# cd /

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

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系统里灵活结合各种命令工具,可以非常高效地根据各种条件找到相关的文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux内核的ext4文件系统是一高性能、可靠的文件系统,是ext3文件系统的升级版。它可以支持更大的文件和更大的文件系统,并提供更高的性能和更好的可靠性。下面是对ext4文件系统代码的详细讲解: 1. 文件系统初始化 文件系统初始化是ext4文件系统的第一步。在初始化过程文件系统会创建超级块、块组描述符表、inode表、位图和根目录等基本数据结构。其,超级块是文件系统的核心数据结构,它记录了文件系统的各属性和参数,如文件系统的大小、块大小、inode数量、挂载时间等。块组描述符表记录了每个块组的信息,如块组的起始位置、块位图的位置、inode位图的位置等。inode表记录了文件和目录的元数据,如文件大小、访问权限、创建时间等。位图记录了块和inode的分配情况。根目录文件系统的根节点,它包含了所有文件和目录的入口。 2. 块和inode的分配 在ext4文件系统,块和inode的分配是通过位图实现的。当文件系统需要分配一个块或inode时,它会在位图查找空闲的块或inode,并将其标记为已分配。如果位图没有空闲的块或inode,则文件系统会尝试从其他块组获取。 3. 目录的管理 在ext4文件系统,目录是一特殊的文件,它包含了其他文件和目录的入口。在目录,每个文件和目录都对应一个inode,它记录了文件和目录的元数据。当一个新的文件或目录被创建时,文件系统会为其分配一个inode,并在目录添加一个新的入口。当一个文件或目录被删除时,文件系统会从目录删除相应的入口,并释放对应的inode和块。 4. 文件的读写 在ext4文件系统文件的读写是通过文件系统缓存和块缓存实现的。当一个文件被打开时,文件系统会将其缓存到内存,并将文件指针定位到文件的起始位置。当文件被读取时,文件系统会从文件的缓存读取数据,并将文件指针向后移动。当文件被写入时,文件系统会将数据写入到块缓存,并将文件指针向后移动。当文件被关闭时,文件系统会将文件的缓存写回到磁盘。 5. 日志记录 在ext4文件系统,日志记录是一重要的机制,它可以保证文件系统的可靠性和一致性。在文件系统的操作,如文件的读写、块和inode的分配、目录的管理等,都会被记录到日志。如果在操作过程出现了错误或系统崩溃,文件系统可以通过日志恢复机制来恢复文件系统的状态。 总结: 以上是对Linux内核的ext4文件系统代码的详细讲解。通过对文件系统初始化、块和inode的分配、目录的管理、文件的读写和日志记录等方面的分析,可以更好地理解文件系统的实现原理和工作机制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值