15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用
02.09.2025

如何在Linux中列出目录?

Linux中工作常常感觉像是在导航一个巨大的图书馆。你没有书架,而是有目录(文件夹);你没有书,而是有文件。作为系统管理员、开发者,甚至是好奇的初学者,掌握如何在这个结构中找到你的方向的基础知识是非常重要的。最重要的技能之一是学习如何列出目录。本文将带你了解不同的方法,解释它们的优缺点,并展示每种方法何时有意义。

为什么列出目录很重要

在个人电脑上,你可能只偶尔查看你的“文档”或“下载”文件夹。然而,在服务器上,目录是日常任务的核心:

  • 系统管理:快速检查 /etc/ 或 /var/log/ 中的内容。
  • 网络托管:在 /var/www/ 中查找项目文件夹。
  • 开发:识别隐藏目录,例如 .git/ 或 .venv/。
  • 安全性:确认系统上安装和运行的内容。

简而言之:如果你不知道如何有效地列出目录,你总会感到迷失。

最简单的方法:ls

ls 命令是显示文件夹内容的默认工具。运行它而不带参数:

ls

这将显示文件和目录。如果你只想查看目录:

ls -d */

这里发生了什么:

  • -d 告诉 ls 不要深入每个目录。
  • */ 是一个匹配当前文件夹中所有目录的 shell 模式。

但有一个限制:隐藏目录(以点开头的目录,如 .git)不会显示。

如果你还想要详细信息——权限、所有权、时间戳——运行:

ls -ld */

当你只想快速查看时使用这个,但要注意这不是脚本编写中最可靠的方法。

更可靠的方法:find

find 就像一束探照灯:它可以扫描你的系统以查找任何深度的目录。

从当前位置递归列出所有目录:

find . -type d

仅列出顶级目录(在 Linux、macOS、BSD 中可移植):

find . -mindepth 1 -prune -type d

如果你在 GNU/Linux(大多数 VPS 发行版)上,可以使用更简单的版本:

find . -maxdepth 1 -type d

何时使用 find:

  • 你想包括隐藏目录。
  • 你需要递归结果。
  • 你正在编写脚本并需要在系统之间保持一致性。

为什么不使用 ls -l | grep “^d”?

你有时会看到建议使用这个:

ls -l | grep "^d"

它过滤 ls -l 的输出,只显示目录(因为它们以 d 开头)。

但这种方法是脆弱的:

  • 不同的语言环境或颜色设置可能会破坏解析。
  • 指向目录的符号链接不会出现。
  • 不适合自动化。

最好使用 find。

最佳实践

  • 对于脚本:使用 find — 可移植、一致,并且适用于隐藏目录。
  • 对于快速检查:ls -d */ 是可以的 — 只需记住它会忽略隐藏文件夹。
  • 对于可视结构:使用 tree。
  • 对于安全性:始终仔细检查隐藏目录 — 它们通常存储重要的配置(.ssh、.git、.config)。
  • 结论

列出目录是一项基本但重要的 Linux 技能。根据上下文,你有几种工具可用:

  • ls -d */ 用于快速检查。
  • find . -mindepth 1 -prune -type d 用于可靠的顶级结果。
  • tree -d 用于系统的可视化地图。

在 AlexHost VPS 或专用服务器上,这些命令帮助你完全控制你的环境,无论你是在部署应用程序、监控日志,还是仅仅在探索文件系统。掌握它们将为你节省时间,防止错误,并让你在任何 Linux 机器上感到如家般舒适。

15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用