如何在 Linux 中检查目录是否为空

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何使用各种命令行工具来判断 Linux 中的目录是否为空。首先,你会使用基础的 ls 命令并搭配 -a 选项来列出目录的所有内容,包括隐藏文件,同时了解像 ... 这类条目的含义。

接下来,你将探索 find 命令,它可以递归地搜索目录中的文件,这为检查目录是否有内容提供了另一种方法。最后,你会学习如何使用 du -sh 命令来验证目录的大小,这是一种快速确认目录是否包含任何数据的方式。通过完成这些步骤,你将掌握在 Linux 环境中高效检查目录是否为空的实用技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/SystemInformationandMonitoringGroup -.-> linux/du("File Space Estimating") subgraph Lab Skills linux/ls -.-> lab-558706{{"如何在 Linux 中检查目录是否为空"}} linux/touch -.-> lab-558706{{"如何在 Linux 中检查目录是否为空"}} linux/find -.-> lab-558706{{"如何在 Linux 中检查目录是否为空"}} linux/du -.-> lab-558706{{"如何在 Linux 中检查目录是否为空"}} end

使用 ls -a 列出目录内容

在这一步中,你将学习如何使用 ls 命令列出目录的内容。ls 命令是 Linux 中最基础的命令之一,用于列出文件和目录。

默认情况下,ls 会显示你当前所在位置的可见文件和目录。你当前所在的位置就是你当前正在操作的目录。当你在这个实验中打开终端时,你当前的位置是 /home/labex/project

让我们尝试一下基本的 ls 命令。在终端中输入以下内容并按下回车键:

ls

你可能会看到一些输出,或者如果目录为空,可能什么都看不到。

现在,让我们来探索 ls 命令的一个有用选项:-a-a 选项代表“all”(全部),它会告诉 ls 显示所有文件,包括隐藏文件。在 Linux 中,以点 (.) 开头的文件和目录被视为隐藏文件。配置文件通常会以这种方式隐藏。

输入以下命令并按下回车键:

ls -a

你可能会看到比之前更多的条目,包括像 ... 这样的条目。

.
..
.zsh_history
  • . 表示当前目录。
  • .. 表示父目录(上一级目录)。
  • .zsh_history 是一个隐藏文件,用于存储你的命令历史记录。

了解隐藏文件很重要,因为它们通常包含应用程序和系统的配置设置。

在你的 ~/project 目录中练习使用 lsls -a 命令,观察输出的差异。

点击 继续 进入下一步。

使用 find 命令检查文件

在这一步中,你将学习如何使用 find 命令在指定位置搜索文件和目录。ls 命令只能列出单个目录的内容,而 find 命令可以递归地搜索子目录。

find 命令的基本语法如下:

find [starting_point] [expression]
  • [starting_point] 是搜索开始的目录。. 表示当前目录。
  • [expression] 指定你要搜索的内容(例如,文件名、类型、大小)。

让我们创建一个简单的文件来进行搜索。我们将使用 touch 命令,它可以创建一个空文件。确保你当前位于 ~/project 目录中。

touch my_document.txt

现在,让我们使用 find 命令来查找我们刚刚创建的文件。我们将从当前目录 (.) 开始搜索,并查找名为 my_document.txt 的文件。

find . -name my_document.txt

-name 选项告诉 find 命令搜索具有特定名称的条目。

你应该会看到文件的路径作为输出:

./my_document.txt

这证实了 find 命令成功找到了该文件。

find 命令非常强大,它有许多选项可以根据不同的标准进行搜索,例如文件类型(-type f 表示文件,-type d 表示目录)、大小、修改时间和权限。

例如,要查找当前目录及其子目录中的所有目录,你可以使用:

find . -type d

这将列出所有目录,包括 ... 以及你可能创建的任何子目录。

在你的 ~/project 目录中尝试使用 find 命令。尝试创建另一个文件或目录,然后使用 find 命令来定位它。

点击 继续 以继续下一步。

使用 du -sh 验证目录大小

在这一步中,你将学习如何使用 du 命令检查文件和目录的磁盘使用情况。这有助于你了解文件占用了多少空间。

du 命令代表“disk usage”(磁盘使用情况)。默认情况下,du 会以块为单位显示给定目录中每个文件和子目录的磁盘使用情况,输出可能会非常详细。

让我们在你的 ~/project 目录中尝试基本的 du 命令:

du

你会看到输出显示 my_document.txt 的大小(由于它是空文件,大小可能为 0)以及当前目录的总大小。

为了获得更易读的输出,我们可以为 du 命令使用选项。两个常用的选项是:

  • -s:汇总。此选项仅显示指定目录的总大小,而不是列出每个文件和子目录。
  • -h:人类可读。此选项以人类更易读的格式显示大小(例如,KB、MB、GB)。

让我们结合这些选项,以人类可读的格式汇总你的 ~/project 目录的磁盘使用情况。

du -sh .

末尾的 . 指定我们要检查当前目录的磁盘使用情况。

输出可能如下所示:

4.0K    .

这表明当前目录 (.) 大约占用了 4.0 KB 的空间。确切的大小可能会因系统和隐藏文件的数量而略有不同。

du -sh 命令是快速查看目录总大小的方法。你也可以指定不同的目录路径,而不是 .,来检查其他目录的大小。

例如,要检查你的主目录 (~) 的大小,你可以使用:

du -sh ~

如果你在这个实验中创建了其他目录,可以在这些目录上练习使用 du -sh 命令。

点击 继续 完成此步骤和本实验。

总结

在这个实验中,你学习了如何使用几个基本命令来检查 Linux 中的目录是否为空。你首先使用 ls -a 列出所有内容,包括隐藏文件以及始终存在的特殊条目 .(当前目录)和 ..(父目录)。

然后,你开始探索 find 命令,这是一个用于在指定起始点递归搜索文件和目录的强大工具。