2000多字教你三招在Linux中找出大文件,最后一个命令简直太简单了!

简介: 使用Windows的朋友大家都使用过各类电脑管家,时不时去扫描电脑中有没有大文件,因为大文件会占用很大的磁盘空间,造成浪费,这个在Windows系统中很好实现,但是如果是Linux系统呢?

你好,这里是网络技术联盟站。

使用Windows的朋友大家都使用过各类电脑管家,时不时去扫描电脑中有没有大文件,因为大文件会占用很大的磁盘空间,造成浪费,这个在Windows系统中很好实现,但是如果是Linux系统呢?

Linux 是一个基于文件的操作系统,其中包含许多不同大小的文件,在日常使用过程中,系统或用户会创建或下载大量文件,这样会消耗大量磁盘空间,从而导致存储错误或警告,本文瑞哥将教大家如何查找出Linux中的大文件。

1、find命令

find是Linux中使用最频繁的查找命令之一,谈到查到文件,那么find最有说话权,那么如何用find命令去查询大文件呢?

我们来举几个例子给大家参考:

1.1 查找某个目录下大小大于50M的文件

命令如下:

find /mnt/d/素材/ -xdev -type f -size +50M

执行结果:

如图,目录/mnt/d/素材中都是各种书籍和资料,所以查出来的结果比较多。

find /mnt/d/素材/ -xdev -type f -size +50M命令中我们知道find命令,/mnt/d/素材/是目录,那么其他的参数是什么意思呢?

  • -xdev:代表仅在当前文件系统搜索
  • -type f:代表类型是文件file
  • -size:代表文件的大小
  • +50M:代表文件的大小大于50M
-50M代表文件的大小小于50M

这个执行结果大家有没有疑问,虽然是大于50M的文件,但是我不知道这个文件的大小到底是多大,怎么样才能打印出每个文件的大小呢?

1.2 查找某个目录下大小大于50M的文件,并且显示出每个文件的大小

find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh

执行结果:

如图查出来的文件结果都有大小,命令也很好理解,在上面的命令后面加-print | xargs ls -lh

  • -print:打印。
  • xargs:这个简单理解为将之前的命令作为参数传递给下一个命令,其实就是将find /mnt/d/素材/ -xdev -type f -size +50M -print的结果作为参数传递给ls -lh命令。
  • ls -lh:列举文件列表,并显示文件详细信息,包括文件大小。

从上面的截图中,大家也注意到了,虽然文件大小能看到了,但是这个适合我想看的爽心悦目,换句话说我想让结果按照文件大小进行排序,这个时候应该怎么办呢?

1.3 查找某个目录下大小大于50M的文件,并进行排序

这个时候我们可以基于1.2的命令进行改造:

find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh这个命令已经显示大于50M的文件列表,并且列表中也显示了文件的具体信息,其中文件的大小在第5列,那么我们可以将find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh命令整体进行管道处理,根据第5列进行降序排序:

find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh | sort -k 5 -rh

执行结果:

很神奇吧,显示的结果已经根据文件的大小进行排序了,最大的文件841M,最小的52M。

我们来看下sort -k 5 -rh

  • sort:这个不用解释了,排序的命令。
  • -k 5:k几就是根据列表中第几列进行排序,在上面的例子中,显示的文件列表信息第5列代表的是文件的大小,所以这里的k 5就是指根据第5列进行排序。
  • rh:反向也就是倒序排序。

我们再来演示一下一个例子,上面的列表数很多,假如我们只想查看排名前5的文件,这个时候怎么去查询呢?

1.4 查找某个目录下大小大于50M的文件,且排名前5的

在公布命令前,大家回想一下,如果对于一个文件的话,我们想要查看这个文件的前5行信息,我们应该用哪个命令?

没错,就是head,在这里我们同样可以将1.3的命令作为管道传给head命令进行处理,即将find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh | sort -k 5 -rh命令传递给head

find /mnt/d/素材/ -xdev -type f -size +50M -print | xargs ls -lh | sort -k 5 -rh | head -n 5

执行结果:

我们可以看出,列表就是排名前5名的文件列表。

  • head 5:就是前5的意思。

以上就是find命令的使用,下面我们再来介绍第2个命令:du

2、du

du命令是disk usage的缩写,意思就是磁盘使用。很明显,du命令就是列出文件和文件夹的磁盘使用情况或存储使用情况。

我们也可以用du命令结合sort、head等命令达到找出大文件的效果。

我们先来介绍一下du命令的基本使用:

du -ah /mnt/d/素材/PDF

执行结果:

如图,目录/mnt/d/素材/PDF都是PDF书籍,du -ah命令中:

  • -a:代表文件详细信息
  • -h:将文件大小格式化

查找某个目录下最大的文件

如果用find命令应该怎么做?

find /mnt/d/素材/PDF | sort -k 5 -rh | head -n 1

这个意思很好理解,先倒叙排序,然后找到第一个,那么第一个一定最大。

如果用du命令应该怎么做呢?

一方面,我们直接使用du命令查询排名前几个的文件,用肉眼去观察最大的:

du -ah /mnt/d/素材/PDF | sort -k 1 -rh | head

执行结果:

如果,我们看到结果中第一行是/mnt/d/素材/PDF目录的总大小,第二行501M /mnt/d/素材/PDF/深入理解计算机系统 第三版.pdf才是最大的那个文件。

这个看起来有点难受呀,我明明就想找出最大的文件,不想去肉眼去判断,这个时候怎么办?

du命令不能直接去实现,需要结合find命令去指定文件类型,我们来看下下面这条命令:

find /mnt/d/素材/PDF -type f -exec du -ah {} +  | sort -k 1 -rh | head -n 1

执行结果:

先看结果,是不是达到了我们的预期效果,很显然是的。

我们来解释一下这条“长长”的命令find /mnt/d/素材/PDF -type f -exec du -ah {} + | sort -k 1 -rh | head -n 1,其实这个命令也很简单,我们将其拆分成三个部分:

  • find /mnt/d/素材/PDF -type f
  • -exec
  • du -ah {} + | sort -k 1 -rh | head -n 1

find /mnt/d/素材/PDF -type f不用说了,我们上面讲过,意思就是在/mnt/d/素材/PDF目录下搜索,并且搜索的类型是文件。

-exec意思就是执行命令,将查找到命令后将结果传输到下一个命令,有点像管道的意思,find的结果将包裹在{}中。

du -ah {} + | sort -k 1 -rh | head -n 1命令就是展示某个目录下文件的详细信息,并且根据第一列进行倒序排序,并且选择展示第一个文件。

最终我们就能通过此命令找出大小最大的文件。

3、ls

ls命令我说是Linux系统中使用最为频繁的命令,大家没有意见吧?如果说ls也能找出最大的文件或者排好序的文件列表的话,那该有多爽。

ls命令还真能达到如此效果,我们先直接放出命令:

ls -lSh /mnt/d/素材/PDF | head -5

执行结果:

看到这里,是不是直呼牛逼,虽然不是一次性查出最大的文件,不过那么简洁的命令我觉得最舒服了,还记那么长的命令干啥。

我们来看下ls的几个参数:

  • -l:长格式,也就是显示文件的详细信息
  • -S:根据文件的大小进行排序
  • -h:格式化文件大小,人类易读

总结

在Linux中查找大文件的场景非常多,本文瑞哥给大家介绍了三个命令:find、du、ls。其中find命令最为灵活,扩展性强,但是论命令简单,还是ls是王者。

最后感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

目录
相关文章
|
3天前
|
缓存 监控 Linux
|
1天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
21 7
|
1天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
17 5
|
4天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
12 2
|
5天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
21 4
|
5天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
20 2
|
4天前
|
缓存 监控 Linux
|
6月前
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
87 1
|
6月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
6月前
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
71 0