|
|
51CTO旗下网站
|
|
移动端

如何找到Linux上的最大文件?

我们大多数人在系统上安装了数十个应用程序。久而久之,许多文件变得越来越大,磁盘空间将开始缩小。因此,了解哪些文件或目录在占用系统的磁盘空间很重要。好消息是,你可以在Ubuntu和类似的Linux发行版的特定目录中轻松找到最大文件。

作者:布加迪编译来源:51CTO|2019-10-11 08:00

【51CTO.com快译】我们大多数人在系统上安装了数十个应用程序。久而久之,许多文件变得越来越大,磁盘空间将开始缩小。因此,了解哪些文件或目录在占用系统的磁盘空间很重要。好消息是,你可以在Ubuntu和类似的Linux发行版的特定目录中轻松找到最大文件。本文将介绍找到系统中最大文件的几种不同方法:

命令1:find

find命令将开始在你指定的目录中搜索,进而搜索所有可访问的子目录。可以指定多个起始目录进行搜索。下面的命令将帮助我们查找大文件。

先打开你的终端并输入命令:

  1. sudo-i 

接下来,执行下列命令以查看最大文件,同时跳过计算机上的目录,键入这个命令:

  1. sudo find / -type f -printf “%s\t%p\n” | sort -n | tail -1  

  1. $ find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10 

可以使用其他的选项来查找大文件:-size选项。比如说,下一个命令将显示大于100MiB(不是100MB)的所有文件:

  1. find / -size +100M -ls 

然而,如果你想添加最小和最大尺寸的范围,可以按照以下命令进行操作,该命令会查找100MiB和200MiB之间的文件:

  1. find / -size +100M -size -200M -ls 

这似乎是find的完美应用。

最后,下列命令在这里也可能很适用:

  1. find $DIRECTORY -type f -exec ls -s {} \; | sort -n | tail -n 5 

这将查找文件夹$ DIRECTORY中执行ls –s操作的所有文件。然后,结果通过sort命令加以数值排序,最后显示最后五个条目。

总之,上述命令随后将显示$ DIRETORY文件夹中最大的5个文件。

关于find命令补充一点,你可以查找最近的文件:少于或等于n天(-ctime -n)的文件或属于特定用户(-user mrlinus)的文件。

命令2:du

代表磁盘使用(disk usage)的du命令估计文件的空间使用。实际上,它可以用来获取占用硬盘上过多空间的文件和文件夹。

先输入下列命令以切换到root:

  1. sudo-i 

然后执行以下命令:

  1. sudo du -a /home | sort -n -r | head -n 20 

du计算主目录中的文件大小,然后进行“sort”操作,最后,由于“head”参数只考虑前20个最大的文件,因此输出将受到限制。

为了显示当前工作文件夹中最庞大的目录,只需运行:

  1. sudo du -a | sort -n -r | head -n 10 

对上述命令作一番解释:

du命令:计算文件空间使用。

a:显示所有文件和目录。

sort命令:对文本文件的输入流进行排序(从管道的入口开始)。

-n:–numeric sort:字符串数值比较。

-r:–reverse:对比较结果进行反向处理。

head:读取所提供的列表,并准备用于标准输出。

-n:告诉返回多少行。(在我们的例子中,我们将显示限制在前10行)。

如果你想使用KB和GB,只需执行下列命令:

  1. du -hs * | sort -rh | head -n 10 

上述命令将显示占用过多磁盘空间的最大目录。如果你认为它们无用想释放一些空间,可以删除它们。

现在为了显示最大目录/文件(包括子文件夹),请运行:

  1. du -Sh | sort -rh | head -n 10 

下面对命令进行解释:

du:du命令

-h:大小将以人类可读的格式显示(比如3MB)。

-S:不包括子目录大小。

Sort:对文本文件的输入流进行排序(从管道的入口开始)。

-r:–reverse:对比较结果进行相反处理。

-h:启用人类可读格式的数字比较(比如2K、1G)。

head:读取所提供的列表,并准备用于标准输出。

-n:告诉返回多少行。(在我们的例子中,我们将显示限制在前10行)。

如果你想要排除类型“permission denied”的错误消息,只需添加teh参数:2> / dev / null:

  1. du -a /* 2>/dev/null | sort -nr | head -n 50 

比如为了查找大小在GB范围内的所有文件,可以同时使用du命令和grep命令:

  1. du -h -a /dir | grep “[0-9]G\b” 

命令3:ls

ls命令用于显示有关目录和文件的信息。

因此,要列出/ bin目录中的5个最大文件,执行以下命令:

  1. ls -lSh /bin | head -5 

使用Baobab(Disk Usage Analyzer)

Disk Usage Analyzer(以前称为Baobab)是一款用于分析磁盘使用的GNOME图形实用程序。就像资源管理器一样,Baobab提供了易于阅读的菜单驱动的图形界面,显示了磁盘驱动器的内容。用户可以扫描文件系统中选择的特定部分,无论是单个文件夹、整个文件系统,甚至是远程目录。

为了安装Baobab,执行以下命令:

  1. sudo apt install baobab 

然后只需调用baobab启动它。你会看到以下窗口:

现在,你可以选择要分析的文件系统。你可以在下面看到文件夹层次结构以及有关大小、修改日期等方面的信息。

在快照的右侧,你将看到一种反映树状信息的图表,可以用它来查看文件夹的大小及其内容。

原文标题:How to find the largest files on Linux ?,作者:amin nahdy

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 现在你可以借助Insync在Linux中原生使用OneDrive
  2. 如何写入到Linux中的Windows分区?
  3. 如何通过SSH在远程Linux系统上运行命令
  4. 被神话的Linux, 一文带你看清Linux在多核可扩展性设计上的不足
  5. 趣图了解Linux中公钥和私钥的区别以及关系
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

87人订阅学习

用Python玩转excel

用Python玩转excel

让重复操作傻瓜化
共3章 | DE8UG

202人订阅学习

AI入门级算法

AI入门级算法

算法常识
共22章 | 周萝卜123

165人订阅学习

读 书 +更多

《ASP.NET AJAX Web 应用开发秘诀(VB版)》

本书详细介绍了AJAX在Web开发上的应用。主要内容包括:ASP.NET AJAX技术概述、实现异步局部更新页面、UpdatePanel编程功能、PageRequestMan...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微