怎样在 Linux 中查找大文件

识别 PC 上的大文件可以帮助您快速回收一些急需的空间。 对于桌面 Linux 用户,寻找大型不必要的文件可能是可选的。 但是当涉及到服务器空间时,它会花钱,而且你必须每个月为多余的空间付费。 以下是怎样在 Linux 中找到大文件以快速删除它们。

内容

使用 ls 命令

一般来说, ls 命令用于列出 Linux 终端中的所有目录和文件。 但是,它可以做更多的事情,例如分类目录内容和显示文件大小。

  1. 要查看有关任何文件和目录的更多信息,包括其权限,您可以使用 -l 旗帜:
ls -l
  1. 现在要打印它们的大小以及所有信息,请使用 -s 与上一个标志一起 -l 旗帜。
ls -ls
最大文件 3
  1. 默认情况下 ls 命令只会列出目录。 要递归查看目录中的文件,请使用 -R 旗帜。
ls -lsR
最大文件 4
  1. 要对文件进行排序,您可以使用 2 种方法。 一个利用 -S 里面的标志 ls 命令,而另一个使用 sort 命令。 要根据文件大小降序对文件进行排序,请运行以下命令。
ls -lsRS
最大文件 5
  1. 要反转顺序,您可以使用 -r 旗帜。
ls -lsRSr
最大文件 6
  1. 或者,您可以尝试替代方案。 之后 ls 命令返回,您可以将结果通过管道传输到 sort 命令。 这将根据其数字文件大小按升序对列表进行排序。 您也可以使用反转顺序 -r 标志一起。
ls -ls | sort -nr
最大文件 7
  1. 到目前为止,我们分析并找到了当前工作目录中最大的文件。 要识别整个文件系统中最大的文件,您可以在 ls 命令。
sudo ls / -S
最大文件 8

使用 find 命令

find 命令可用于搜索我们的 Linux 文件系统中的任何文件。 在这种情况下,我们可以使用它来根据文件大小列出文件。 我们还可以根据最小文件大小过滤结果。

  1. 要查找当前工作目录中最大的文件,请键入以下内容。
find . -type f
最大文件 12
  1. 还可以添加最小大小为 100MB 的过滤器。
find . -type f -size +100M
最大文件 10
  1. 要指定某个目录,请在后面添加相对路径 find 命令。
find ./test -type f -size +100M
  1. 这样做会在“test”目录中找到所有大于 100MB 的文件。
  2. 有时我们需要搜索整个文件系统以找到最大的文件。 为此,只需添加一个 / 在 find 命令之后。
sudo find / -xdev -type f -size +100M

笔记: 这 -xdev flag 指示不要在其他文件系统上下降目录。 简而言之,它不会扫描您 Linux 系统中其他已挂载的文件系统。

  1. 要删除此行为并扫描所有已安装的驱动器以及您的主文件系统,只需删除 -xdev 命令,如下。
sudo find / -type f -size +100M

现在,您应该能够查看整个设备中最大文件的列表以及已安装的驱动器。

使用 du 命令

du 命令主要用于估计 Linux 中的文件大小。 这是使用它查找大文件的方法。

  1. 您可以使用 -a 标志以递归方式列出文件以及目录大小。
du -a
最大文件 13
  1. 此处列出的文件大小显示为非常长的数字字符串,因此对于任何人来说都很难估计。 为了使其易于阅读,请使用 -h 标志与其他标志一起使用。
du -ah
最大文件 15 1
  1. 现在要使文件大小统一,我们可以使用 blocksize 运算符 -B 以及我们选择的单位。 如果要以 MB 为单位转换大小,请使用单位 M 作为块大小。
du -aBM
最大文件 17
  1. 为了找到其中最大的文件,我们使用 sort 命令按降序对文件进行排序。
du -aBM | sort -nr
  1. 要仅列出前 5 个结果,我们将使用管道将排序后的列表输入到 head 命令中 -n 5.
du -aBM | sort -nr | head -n 5
最大文件 18
  1. 到目前为止,我们只在当前工作目录中显示文件大小。 要列出某个特定目录的最大文件,只需在目录名称后面附加目录名称 du 命令。 以下命令将列出主目录中最大的 5 个文件。
du /home -aBM | sort -nr | head -n 5
  1. 要查找整个文件系统中最大的 10 个文件,只需添加 / 在 du 命令之后。
du / -aBM | sort -nr | head -n 10

查找未使用的大文件

获取未使用文件的列表非常有用,因为您可以轻松删除它们以节省硬盘空间。 您可以在 -mtime 标志与 find 我们之前讨论过的命令。 以下说明将列出前 10 个文件,这些文件超过 30 天未修改且文件大小至少为 100MB。

find / -xdev -mtime +30 -type f -size +100M

用于在 Linux 中查找最大文件的 GUI 应用程序

如果您在桌面上运行 Linux,则可以使用这些 GUI 应用程序来查找系统中最大的文件。

1. 磁盘使用分析器

在 Linux 中分析文件大小的最佳 GUI 应用程序之一被称为 磁盘使用分析器. 它按安装在您的 Gnome 桌面环境中。

  1. 如果您的机器上没有安装此应用程序,您可以像这样轻松安装磁盘使用分析器应用程序。
sudo apt update
sudo apt install baobab

为了 Fedora 或其他基于 red-hat 的发行版,您可以使用以下命令安装 Disk Usage Analyzer:

sudo dnf install baobab
  1. 现在打开应用程序并选择要扫描的文件系统。 磁盘使用分析器将列出您机器中所有附加的文件系统。
  2. 您必须等待几秒钟,直到扫描完成。
  3. 完成该过程后,您将能够看到按大小排序的文件和文件夹列表(顶部较大,底部较小)。
最大文件 19
  1. 您可以使用双击导航到文件夹。

可用于在 Linux 系统上查找大文件的一些其他 GUI 应用程序包括:

删除最大的文件

找到最大的文件后,现在是删除它们的时候了。 您可以在以下帮助下轻松做到这一点 rm Linux 中的命令。

  1. 复制要删除的文件的绝对或相对文件,并在后面追加文件路径 rm 命令。
rm "your file path goes here"
  1. 要删除任何非空目录,您必须使用 -rf 之后 rm 命令。 -r 表示递归地删除目录中的文件和 -f 意味着强制删除该目录。 为了 example,如果要删除“下载”文件夹以及其中的所有文件,请运行以下命令。
rm -rf ~/Downloads

经常问的问题

为什么我收到“权限被拒绝”错误?

如果你想在你的主目录之外运行任何命令,你应该有 root 权限。 否则,您将收到权限被拒绝错误。 尝试使用 sudo 在命令之前。 这将提升您作为 root 用户的权限,并且您可以在系统文件上成功运行任何命令。 使用时要小心 sudo 用任何命令。

怎样查找大于 1GB 的文件?

要查找大于 1GB 的文件,可以使用 find 命令及其 -size 旗帜。 该命令将如下所示: sudo find / -xdev -type f -size +1G.

怎样查看特定文件夹的大小?

要查看文件夹的大小,您可以使用我在本文中提到的任何工具。 您还可以使用文件资源管理器查看文件夹的大小。 只需右键单击文件夹并选择属性选项。 在那里您可以轻松找到列出的文件夹大小。

图片来源: 不飞溅 所有截图 Hrishikesh Pathak

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅