新增目录
mkdir
mkdir 命令用于创建新目录(文件夹)。
mkdir directory...
常用选项
| 选项 | 全称 | 含义 |
|---|---|---|
-p |
--parents |
创建多级目录,如果父目录不存在则自动创建 |
-v |
--verbose |
显示详细操作信息 |
-m |
--mode |
设置目录权限模式 |
示例
创建一个名为 dir1 的单一目录。
mkdir dir1
创建三个名为 dir1、dir2 和 dir3 的目录。
mkdir dir1 dir2 dir3
创建多级目录结构,可以应对父目录不存在的情况。
mkdir -p project/src/include
创建目录并显示详细信息。
mkdir -v logs
mkdir: created directory 'logs'
创建具有特定权限的目录(755权限:rwxr-xr-x)。
mkdir -m 755 dir
删除目录
rmdir
rmdir 命令用于删除空目录。
rmdir directory...
常用选项
| 选项 | 全称 | 含义 |
|---|---|---|
-p |
--parents |
删除目录及其空的父目录 |
-v |
--verbose |
显示详细操作信息 |
示例
删除一个空目录 dir1。
rmdir dir1
删除多个空目录。
rmdir dir1 dir2 dir3
删除多级空目录结构。
rmdir -p project/src/include
显示删除过程的详细信息。
rmdir -v empty_dir
rmdir: removing directory, 'empty_dir'
切换目录
cd
cd 命令用于切换当前工作目录。
cd [directory]
特殊符号
| 符号 | 含义 |
|---|---|
. |
当前目录 |
.. |
上级目录 |
~ |
当前用户的主目录 |
- |
切换到上一个工作目录 |
~username |
指定用户的主目录 |
pushd, popd, dirs:目录栈操作
目录栈(directory stack)是一个LIFO(后进先出)的栈结构,用于保存多个工作目录路径,允许用户快速在多个目录之间切换,而不需要记住完整的目录路径。
pushd:切换目录并压入栈中
pushd 命令用于切换到指定目录,并将原目录压入目录栈。
pushd [directory]
工作原理
- 将当前目录压入栈顶
- 切换到指定目录
- 显示当前的目录栈内容
常用选项
| 选项 | 含义 |
|---|---|
+n |
使第n个目录成为栈顶并切换到该目录(从栈顶开始计数为0) |
-n |
使第n个目录成为栈顶并切换到该目录(从栈底开始计数为0) |
popd:从栈中弹出目录并切换
popd 命令用于从目录栈中弹出栈顶目录,并切换到新的栈顶目录。
popd [option]
工作原理
- 从栈顶弹出目录
- 切换到新的栈顶目录
- 显示当前的目录栈内容
常用选项
| 选项 | 含义 |
|---|---|
+n |
移除栈中第n个目录(从栈顶开始计数为0) |
-n |
移除栈中第n个目录(从栈底开始计数为0) |
dirs:显示目录栈内容
dirs 命令用于显示当前目录栈的内容。
dirs [option]
常用选项
| 选项 | 含义 |
|---|---|
-s |
使用~缩写主目录(默认行为) |
-l |
展开~为完整路径 |
-v |
每行显示一个目录,并显示索引号 |
-c |
清空目录栈 |
-p |
每行显示一个目录 |
查看目录
pwd
pwd 命令用于显示当前工作目录的完整路径。
pwd [option]
常用选项
| 选项 | 全称 | 含义 |
|---|---|---|
-L |
--logical |
显示逻辑路径(包含符号链接) |
-P |
--physical |
显示物理路径(解析所有符号链接) |
ls
ls 命令用于列出目录中的文件和子目录。
ls [option]... [file]...
常用选项
| 选项 | 全称 | 含义 |
|---|---|---|
-a |
--all |
显示所有文件,包括隐藏文件(以.开头) |
-l |
--long |
使用长格式显示详细信息 |
-u |
使用文件的最后访问时间,而非最后修改时间 | |
-U |
使用文件的创建时间,而非最后修改时间 | |
-h |
--human-readable |
与-l一起使用,以人类可读格式显示文件大小 |
-d |
--directory |
列出目录本身,而不是其内容 |
-t |
--sort=time |
按修改时间排序,最新的最先显示 |
-S |
--sort=size |
按文件大小排序 |
-r |
--reverse |
逆序排序 |
-R |
--recursive |
递归列出子目录内容 |
-F |
--classify |
在条目后添加指示符(/表示目录,*表示可执行文件) |
--color |
使用颜色区分文件类型 | |
-i |
--inode |
显示文件的inode编号 |
文件类型指示符
| 符号 | 含义 |
|---|---|
/ |
目录 |
* |
可执行文件 |
@ |
符号链接 |
= |
套接字文件 |
| <code>|</code> | 管道文件 |
tree
tree 命令以树状格式显示目录和文件的结构。
tree [directory] [options]
常用选项
| 选项 | 含义 |
|---|---|
-a |
显示所有文件,包括隐藏文件 |
-h |
以人类可读格式显示文件大小 |
-d |
仅显示目录 |
-t |
按修改时间排序 |
-r |
逆序排序 |
-f |
显示完整路径 |
-s |
显示文件大小 |
-L level |
限制显示的目录深度 |
-o filename |
将输出保存到文件 |
-I pattern |
排除匹配模式的文件或目录 |
-P pattern |
只显示匹配模式的文件或目录 |
示例
显示当前目录的树状结构。
tree
.
├── dir1
│ ├── file1.txt
│ └── file2.txt
├── dir2
│ └── subdir
└── file3.txt
显示完整路径。
tree -f
.
├── ./dir1
│ ├── ./dir1/file1.txt
│ └── ./dir1/file2.txt
└── ./file3.txt