文件和目录管理命令 pwd
pwd 是 Linux 里一个超级基础的命令,全称是 Print Working Directory,翻译过来就是“打印当前工作目录”。它会告诉你你现在在文件系统的哪个位置。
基本用法
最简单的用法就是直接敲 pwd
,啥参数都不带:
pwd
运行后,它会输出你当前所在的目录的完整路径(pwd
永远输出绝对路径)。比如:
/home/user/documents
这表示你现在在 /home/user/documents
这个目录下。路径是绝对路径,从根目录 /
开始,层层往下。
pwd -L 显示逻辑路径
加上 -L
(Logical 的缩写),pwd
会显示“逻辑”工作目录,也就是考虑符号链接(symlink)的路径。
啥叫逻辑路径?假设你当前目录是通过符号链接跳转过来的,-L
会显示符号链接指向的路径,而不是实际的物理路径。
pwd -L
举个例子:假如 /home/yzy/link
是个符号链接,指向 /tmp/data
,你在 link
目录下运行:
cd /home/yzy/link
pwd -L
输出会是:
/home/yzy/link
pwd -P 显示物理路径
加上 -P
(Physical 的缩写),pwd
会显示实际的物理路径,忽略符号链接。
还是上面的例子,运行:
cd /home/yzy/link
pwd -P
输出会是:
/tmp/data
这时候,它直接告诉你真实的目录位置 /tmp/data
。
啥时候用 -L 和 -P?
- 如果你在乎当前目录的“表面路径”(比如符号链接的路径),用
-L
。 - 如果你需要真实的物理路径(比如脚本里要操作实际文件),用
-P
。
一般情况下,默认的 pwd
(相当于 pwd -L
)就够用了。
脚本里用 pwd
在写 shell 脚本时,经常需要知道当前目录。比如,你想把文件保存到当前目录:
#!/bin/bash
current_dir=$(pwd)
echo "当前目录是:$current_dir"
cp somefile.txt "$current_dir/backup.txt"
这里 pwd
的输出被存到变量 current_dir
里,脚本就能动态知道当前目录。
环境变量 PWD
pwd
命令会读取环境变量 $PWD
,你可以用 echo $PWD
查看,它的值通常跟 pwd -L
的输出一致。