Linux 快速排查大文件和大文件夹

背景:因为磁盘空间被占满,导致redis ,sftp应用无法使用。这时需要清理磁盘空间,于是找出占用空间较大的文件和文件夹是比较重要的一步。

方法一:使用 du 和 sort 命令

1.查找当前目录及其子目录中占用空间较大的前10个文件或文件夹

du -ah . | sort -rh | head -n 10

说明:

  • du -ah .:递归计算当前目录(.)下的所有文件和文件夹的空间占用,-a 表示显示所有文件和文件夹,-h 表示以人类可读的格式显示。
  • sort -rh:按数值大小逆序排序,-r 表示逆序,-h 表示以人类可读的格式排序。
  • head -n 10:显示排序后的前10行结果。

方法二:使用 du 和 find 命令

如果只想查找文件或文件夹,可以分别使用以下命令。

1.查找前10个占用空间最大的文件

find . -type f -exec du -h {} + | sort -rh | head -n 10

说明:

  • find . -type f:查找当前目录(.)及其子目录中的所有文件。
  • -exec du -h {} +:对查找到的每个文件执行 du -h 命令,{} 代表文件名,+ 表示以批处理方式执行。
  • sort -rh | head -n 10:按数值大小逆序排序并显示前10行结果。
2.查找前10个占用空间最大的文件夹

du -h --max-depth=1 . | sort -rh | head -n 10

说明:

  • du -h --max-depth=1 .:计算当前目录(.)下的文件夹大小,--max-depth=1 表示只计算当前目录的深度,不递归子目录。
  • sort -rh | head -n 10:按数值大小逆序排序并显示前10行结果。 
<think>好的,用户现在问的是在Linux上如何查询较的文件或文件夹。之前他们遇到了MySQL的表空间问题,现在转向了Linux系统的文件管理。可能用户是系统管理员或者开发人员,需要处理服务器上的存储问题。 首先,我需要考虑用户的需求。他们可能想要找出占用磁盘空间的文件或文件夹,以便进行清理或优化。用户可能有不同的使用场景,比如服务器维护、排查磁盘空间不足的问题,或者日常管理。 接下来,用户可能对Linux命令不太熟悉,所以需要给出具体且易于理解的命令示例。同时,他们可能需要知道如何排序、如何限制结果数量,或者如何搜索特定目录下的文件。 要覆盖不同的情况,可能需要介绍多个命令,比如find、du、ncdu等,以及如何结合排序过滤选项。还要注意权限问题,有些命令可能需要sudo来访问所有目录。 另外,用户可能不知道如何组合这些命令,所以需要给出实际例子,比如使用du配合sorthead来找出最文件夹。同时,解释每个参数的作用,帮助他们理解。 还要考虑用户可能需要可视化工具,比如ncdu,这对不熟悉命令行的人来说更友好。或者使用ls按文件小排序,但ls默认不递归,所以需要指出其局限性。 最后,可能需要给出一些使用建议,比如定期清理、查找日志文件或缓存文件,以及处理大文件的注意事项,比如备份后再删除。</think>在Linux系统中查找大文件大文件夹,可以通过以下常用命令技巧实现: --- ### 一、**查找大文件** #### 1. 使用 `find` + `ls` 组合 ```bash # 查找当前目录下于100MB的文件(按小降序) find . -type f -size +100M -exec ls -lhS {} + 2>/dev/null # 查找根目录下于1GB的文件 sudo find / -type f -size +1G -exec ls -lhS {} + 2>/dev/null ``` #### 2. 使用 `du` 命令 ```bash # 显示当前目录下最的10个文件 du -ah . | sort -rh | head -n 10 # 显示指定目录(如/var)下最的5个文件 sudo du -ah /var | sort -rh | head -n 5 ``` --- ### 二、**查找大文件夹** #### 1. `du` 命令进阶用法 ```bash # 显示当前目录下所有子目录小(按小排序) du -h --max-depth=1 . | sort -hr # 显示根目录下最的5个文件夹 sudo du -h --max-depth=1 / | sort -hr | head -n 5 ``` #### 2. 图形化工具 `ncdu` ```bash # 安装并运行(支持交互式浏览) sudo apt install ncdu # Debian/Ubuntu sudo yum install ncdu # CentOS/RHEL ncdu / ``` --- ### 三、**按时间筛选文件** #### 1. 查找最近修改的大文件 ```bash # 查找7天内修改过且于100MB的文件 find /path/to/search -type f -size +100M -mtime -7 -exec ls -lh {} + ``` --- ### 四、**实用技巧** #### 1. 快速定位常见大文件 ```bash # 查找日志文件(通常以.log结尾) sudo find /var/log -name "*.log" -size +100M # 查找临时文件(/tmp目录) sudo du -sh /tmp/* ``` #### 2. 过滤隐藏文件 ```bash # 排除隐藏文件(以.开头的文件/夹) du -h --max-depth=1 . | grep -v "/\." | sort -hr ``` --- ### 五、**工具对比** | 命令/工具 | 特点 | 适用场景 | |----------|------|----------| | `find` | 灵活筛选文件属性 | 精确查找特定小/时间的文件 | | `du` | 统计目录空间占用 | 快速定位大文件夹 | | `ncdu` | 交互式可视化界面 | 直观浏览层级目录小 | | `ls -lS` | 直接显示排序结果 | 快速查看当前目录大文件 | --- ### 六、**操作建议** 1. **谨慎删除系统文件**:删除前确认文件用途(尤其是`/var`、`/usr`下的文件) 2. **优先清理**: - 旧日志文件(`/var/log`) - 缓存文件(`~/.cache`) - 残留的Docker镜像或容器 3. **定期维护**: ```bash # 清理7天前的日志文件(示例) find /var/log -name "*.log" -type f -mtime +7 -delete ``` 通过以上方法,可快速定位占用磁盘空间的主要文件或目录,建议结合多种工具交叉验证结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值