# cd /
root@test-W330-C30:/# du -ahx . | sort -rh | head -5
8.2G .
5.6G ./usr
3.3G ./usr/share
1.9G ./usr/lib
1.2G ./usr/lib/x86_64-linux-gnu
root@test-W330-C30:/# du -ahx . | sort -rh | head -10
8.2G .
5.6G ./usr
3.3G ./usr/share
1.9G ./usr/lib
1.2G ./usr/lib/x86_64-linux-gnu
993M ./opt
776M ./usr/share/icons
696M ./usr/share/fonts
664M ./home
609M ./usr/share/icons/kylin-icon-theme
root@test-W330-C30:/# pwd
/
root@test-W330-C30:/# df -TH
文件系统 类型 容量 已用 可用 已用% 挂载点
udev devtmpfs 17G 0 17G 0% /dev
tmpfs tmpfs 3.4G 9.8M 3.4G 1% /run
/dev/sda2 ext4 101G 8.9G 87G 10% /
tmpfs tmpfs 17G 0 17G 0% /dev/shm
tmpfs tmpfs 5.3M 0 5.3M 0% /run/lock
tmpfs tmpfs 17G 0 17G 0% /sys/fs/cgroup
/dev/sda1 ext4 991M 78M 846M 9% /boot
/dev/sda4 vfat 1.1G 263k 1.1G 1% /boot/efi
tmpfs tmpfs 3.4G 37k 3.4G 1% /run/user/1000
tmpfs tmpfs 3.4G 4.1k 3.4G 1% /run/user/0
root@test-W330-C30:/#

在Linux中查找大文件

随着时间的推移,您的磁盘驱动器可能会被大文件占用大量磁盘空间,不必要文件弄得乱七八糟。通常是因为大型日志文件或备份文件,导致Linux系统的磁盘空间不足。

本教程介绍如何使用finddu命令在Linux系统中查找最大的文件和目录。

使用find命令查找大文件

find命令是Linux系统管理员工具库中最强大的工具之一。它允许您根据不同的标准(包括文件大小)搜索文件和目录。

例如,如果在当前工作目录中要搜索大小超过100MB的文件,请使用以下命令:

sudo find . -xdev -type f -size +100M

. 代表当前目录。如要搜索其它目录替换.为要搜索目录的路径。

输出将显示的文件列表,不会包含其它信息。

/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
/var/lib/libvirt/images/debian-9_default.img
/var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
/var/lib/libvirt/images/centos-7_default.img

find命令还可以与其他命令结合使用,例如lssort对这些文件执行操作。

在下面的示例中,我们传递find命令的输出到ls ,ls将打印已找到的每个文件的大小,然后将将输出传递给sort命令,以根据文件大小的第5列对其进行排序。

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r

输出看起来像这样:

-rw-------  1 root   root 40967M Jan  5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img
-rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
-rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img
-rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img

如果输出包含大量信息,您可以使用该head命令仅打印前10行:

find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head

让我们分解命令:

    • find . -xdev -type f -size +100M -print- 仅搜索当前工作目录(.)中的 文件(-type f),大于100MB(-size +100M),不要查找其他文件系统上的目录(-xdev)并在标准输出上打印完整文件名,然后是新的一行(-print) 。
    • xargs ls -lhfind命令的输出通过管道xargs执行,ls -lh命令将以长列表可读格式打印输出。
  • sort -k5,5 -h -r- 基于第5列(-k5,5)对行进行排序,以可读格式(-h)的值并反转结果(-r)。
  • head :仅打印管道输出的前10行。

find命令带有许多强大的选项。例如,您可以搜索超过多少天的大文件,具有特定扩展名的大文件或属于特定用户的大文件。

使用du命令查找大文件和目录

du命令用于估计文件空间使用情况,对于查找占用大量磁盘空间的目录和文件特别有用。

以下命令将打印最大的文件和目录:

du -ahx . | sort -rh | head -5

第一列包含文件大小,第二列包含文件名:

55G	.
24G ./.vagrant.d/boxes
24G ./.vagrant.d
13G ./Projects
5.2G ./.minikube

命令说明:

  • du -ahx .:估算当前工作目录(.)中的磁盘空间使用情况,包括文件和目录(a),以比较接近人的常见可读格式打印大小(h)并跳过不同文件系统上的目录(x)。
  • sort -rh:通过可读格式(-h)的值并反转结果(-r)来对输出行进行排序。
  • head -5 :仅打印管道输出的前5行。

结论

当磁盘已满并且您想要释放它时,查找大文件非常有用。

现在您已经找到了系统中最大的文件,您可能需要阅读有关如何使用Linux命令行删除文件和目录的指南。如果您有任何问题或意见,请在下面留言。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

 

最新文章

  1. OpenJudge计算概论-比饭量【枚举法、信息数字化】
  2. C++ Builder技巧集锦
  3. 第二个UI脚本--Python+selenium之unittest+HTMLtestRunner及python的继承
  4. Haskell缩进规则
  5. 集成框架 javaweb开发平台ssmy_m(生成代码) java struts2 mybatis spring maven jquery
  6. 将ImageList中的图片转化成byte数组
  7. android 广播安装指定下载的apk
  8. 尼姆博弈(Nimm's Game)
  9. java并发之DelayQueue实际运用示例
  10. 【Swift 3.0】iOS 国际化切换语言
  11. hive内group by取第一条数据,Hive中row_number的使用
  12. scrapy 安装流程和启动
  13. Yii2-设置和获取、删除Cookies空值分析(有代码)
  14. mod与%的区别
  15. sublime text2快捷键
  16. Xcode 常用插件
  17. 微信小程序开发1_资料收集
  18. hdu1546Idiomatic Phrases Game(floyd+map)
  19. Spark Core Runtime分析: DAGScheduler, TaskScheduler, SchedulerBackend
  20. java并发编程(8)原子变量和非阻塞的同步机制

热门文章

  1. js 更改json的 key
  2. Egress-Assess-出口数据安全功能测试
  3. badusb论述
  4. Typescript进阶之路
  5. 【笔记】《Redis设计与实现》chapter16 Sentinel
  6. Windows命令行学习(系统信息收集)
  7. Tony老师带你来看Java设计模式:代理模式
  8. 浅谈synchronized和volatitle实现线程安全的策略
  9. 一文读懂eBPF/XDP
  10. 《机器学习Python实现_10_09_集成学习_bagging_stacking原理及实现》