在linux系统的文件管理和命令操作中,当前目录指的是用户当前所处的工作目录,系统用特定的符号来标识当前目录,这个符号是英文点号.。理解当前目录的表示方式,是掌握linux路径操作和目录切换的基础。

当前目录的标准表示符号
linux中统一使用单个英文点号.来表示当前目录,这个符号属于相对路径的一种特殊形式。和当前目录对应的,两个英文点号..表示当前目录的上一级父目录,这两个符号是linux路径操作中最常用的相对路径标识。
我们可以通过pwd命令查看当前所处的绝对路径,来验证当前目录的表示逻辑:
# 查看当前所在目录的绝对路径 pwd # 假设输出为 /home/test/user,那么当前目录 . 就等价于 /home/test/user # 父目录 .. 就等价于 /home/test
当前目录的常见使用场景
1. 执行当前目录下的程序或脚本
当我们需要运行当前目录下存放的可执行文件或脚本时,不能直接输入文件名,需要在文件名前加上./来指定从当前目录查找文件,否则系统会默认去环境变量PATH指定的目录中查找,导致找不到文件报错。
# 当前目录下有一个名为 test.sh 的脚本 # 错误执行方式,会提示命令未找到 test.sh # 正确执行方式,使用当前目录标识 ./test.sh
2. 目录切换操作
使用cd命令切换目录时,cd .的作用是切换到当前目录,这个操作看起来没有实际意义,但在某些需要刷新当前目录状态的场景下会用到。而cd ..则是切换到当前目录的父目录,是日常操作中使用频率很高的命令。
# 切换到当前目录,目录路径不变 cd . # 切换到当前目录的上一级目录 cd ..
3. 文件操作中的路径引用
在进行文件复制、移动、删除等操作时,也可以使用.来表示当前目录作为目标路径。比如把当前目录下的a.txt复制到当前目录,或者把其他目录的文件复制到当前目录。
# 把当前目录下的 a.txt 复制到当前目录,并重命名为 b.txt cp ./a.txt ./b.txt # 把 /tmp 目录下的 c.txt 复制到当前目录 cp /tmp/c.txt .
当前目录与绝对路径的对比
linux中的路径分为绝对路径和相对路径两种,当前目录属于相对路径的范畴,两者的区别如下:
| 路径类型 | 表示方式 | 特点 |
|---|---|---|
| 绝对路径 | 以/开头的完整路径,比如/home/test/user | 不受当前目录影响,在任何位置输入都能定位到同一个目录 |
| 相对路径(当前目录) | 以.开头的路径,比如./test | 依赖当前所处的目录,不同位置输入可能指向不同的文件 |
注意事项
- 当前目录符号
.和..是linux系统通用的标识,在所有shell环境中都支持,包括bash、zsh等常见shell。 - 不要混淆
.和source命令,source命令也常用.作为简写,比如. ~/.bashrc等价于source ~/.bashrc,这里的.是source命令的简写,不是当前目录的标识,使用场景完全不同。 - 在编写shell脚本时,如果需要获取脚本所在的当前目录,不能直接用
.,因为.表示的是执行脚本时的当前工作目录,而不是脚本文件本身所在的目录,这种情况需要用dirname $0来获取脚本所在目录。
# 获取脚本所在目录的正确方式 #!/bin/bash # 获取脚本所在目录的绝对路径 SCRIPT_DIR=$(cd $(dirname $0); pwd) echo "脚本所在目录为: $SCRIPT_DIR"