如何在/usr目录下找出大小超过10MB的文件?

参考回答

在 Linux 中,可以使用 find 命令来查找 /usr 目录下大于 10MB 的文件,具体命令如下:

find /usr -type f -size +10M
Bash
  • /usr:指定查找范围为 /usr 目录及其子目录。
  • -type f:只查找普通文件,不包括目录等其他类型。
  • -size +10M:查找大小大于 10MB (M 代表 MB) 的文件。

如果希望按文件大小排序,可以使用:

find /usr -type f -size +10M -exec ls -lh {} + | sort -k5 -h
Bash

这样可以按照文件大小从小到大排列。


详细讲解与拓展

1. find 命令解析

  • find 是 Linux 中强大的查找工具,可以根据文件名、大小、时间等条件筛选文件。
  • -size +10M 表示文件大小超过 10MB,如果想查找小于 10MB 的文件,可以用 -size -10M
  • M 代表 MB,其他单位:
    • c(字节),如 -size +10240c 查找大于 10240 字节(10KB)的文件。
    • k(KB),如 -size +100k 查找大于 100KB 的文件。
    • G(GB),如 -size +1G 查找大于 1GB 的文件。

2. 显示文件详细信息

find 只会返回文件路径,如果需要查看文件大小等详细信息,可以结合 ls

find /usr -type f -size +10M -exec ls -lh {} +
Bash
  • ls -lh 以可读格式(human-readable)显示文件大小。
  • {} 代表 find 找到的文件,+ 号表示批量传递参数,效率比 \; 高。

3. 查找并按大小排序

如果要按大小排序,可以结合 sort

find /usr -type f -size +10M -exec ls -lh {} + | sort -k5 -h
Bash
  • sort -k5 -h:按第 5 列(文件大小)排序,-h 选项可识别 KMG 等单位。

4. 只显示前 N 个最大文件

如果想找出 /usr 目录下前 10 个最大文件

find /usr -type f -size +10M -exec ls -lh {} + | sort -k5 -h | tail -n 10
Bash

5. 结合 du 命令查找

du 也可以用于查找大文件:

du -ah /usr | grep '[0-9]M' | sort -rh | head -n 10
Bash
  • du -ah:显示 /usr 目录下所有文件和目录的大小。
  • grep '[0-9]M':筛选出 MB 级别的文件。
  • sort -rh:按大小降序排列(-r 逆序,-h 识别单位)。
  • head -n 10:显示前 10 个最大文件。

总结

  • find /usr -type f -size +10M 是最基本的查找命令。
  • 结合 ls 可以查看详细信息,结合 sort 可以按大小排序。
  • du 也可以用于统计文件大小,适合分析磁盘占用情况。

这些方法能帮助我们快速定位大文件,方便清理磁盘空间。

发表评论

后才能评论