---
url: https://eoht.net/fe/linux/directory.md
description: >-
  本文从树状文件系统与根目录开始介绍 Linux 目录结构，比较绝对路径和相对路径，并说明 ls、cd、pwd、mkdir、rmdir
  等常用目录命令的用途与参数；内容涵盖查看隐藏文件和权限、切换与显示当前路径、递归创建目录、设置目录权限，以及删除空目录和上级空目录的基本操作示例。
---

# Linux 目录结构 了解 Linux 文件系统布局 {#linux-directory-structure}

Linux 的目录结构为树状结构，最顶级的目录为根目录 `/`。

其他目录通过挂载可以将它们添加到书中，通过解除挂载可以移除他们。

## 绝对路径与相对路径 {#absolute-and-relative-paths}

| **绝对路径**                                         | **相对路径**                                                                                                        |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| 由根目录 `/` 写起，例如：`/usr/share/doc` 这个目录。 | 不是由 `/` 写起，例如由 `/usr/share/doc` 要到 `/usr/share/man` 底下时，可以写成：`cd ../man` 这就是相对路径的写法。 |

## 查看目录 {#list-linux-directories}

Linux 系统当中， `ls` 命令可能是最常被运行的。

|          |                                                                |
| -------- | -------------------------------------------------------------- |
| `ls`     | 查看当前路径下的文件名称                                       |
| `ls -a`  | 全部的文件，连同隐藏文件(开头为 `.` 的文件) 一起列出来（常用） |
| `ls -d`  | 仅列出目录本身，而不是列出目录内的文件数据（常用）             |
| `ls -l`  | 长数据串列出，包含文件的属性与权限等等数据；（常用）           |
| `ll`     | 等于 `ls -l`                                                   |
| `ls -al` | 目录下的所有文件列出来（含属性与隐藏档）                       |

## 切换目录 {#change-linux-directory}

`cd` 是 `Change Directory` 的缩写，这是用来变换工作目录的命令。

```bash
cd \[相对路径或绝对路径\]
```

## 显示当前目录 {#show-current-directory}

`pwd` 是 `Print Working Directory` 的缩写，也就是显示目前所在目录的命令。

## 创建目录 {#create-linux-directory}

`mkdir(make directory)` 用来创建新的目录。

```bash
mkdir \[-mp\] 目录名称
```

|                |                                                   |
| -------------- | ------------------------------------------------- |
| `\-m`          | 配置文件的权限，直接配置，不需要看默认权限的脸色  |
| `\-p`          | 直接将所需要的目录(包含上一级目录) 递归创建起来！ |
| `mkdir --help` | 查看帮助                                          |

## 删除目录 {#remove-linux-directory}

`rmdir` 用来删除空的目录命令。

```bash
rmdir \[-p\] 目录名称
```

|       |                                      |
| ----- | ------------------------------------ |
| `\-p` | 连同上一级 `\[空的\]` 目录也一起删除 |

## Linux 学习路径 {#linux-learning-path}

熟悉目录结构和路径切换后，可继续学习 [Linux 文件操作](/fe/linux/file)；如需控制文件和目录的读写范围，再查看 [Linux 文件权限](/fe/linux/file-permission)。
