在Linux系统中,cwd
是 Current Working Directory(当前工作目录) 的缩写,表示进程或用户当前所在的目录路径。以下是详细说明:
cwd
是进程运行时的一个属性,指向该进程操作文件的默认路径(相对路径的基准)。ls
,默认列出的是当前 cwd
下的文件。cwd
的方式pwd
(Print Working Directory)bash
$ pwd
/home/username/projects # 输出当前所在目录
通过 /proc/<PID>/cwd
符号链接查看某进程的 cwd
:
# 1. 查找进程PID(例如nginx)
$ pgrep nginx
1234
# 2. 查看该进程的cwd
$ ls -l /proc/1234/cwd
lrwxrwxrwx 1 root root 0 Sep 10 10:00 /proc/1234/cwd -> /var/www/html
cwd
的重要性cat file.txt
)默认在 cwd
下寻找文件。cwd
加载配置文件或资源。术语 | 全称 | 说明 |
---|---|---|
cwd |
Current Working Directory | 进程/用户的当前目录。 |
PWD |
Present Working Directory | Shell环境变量,通常与 cwd 一致。 |
/ |
根目录 | 文件系统的起点,与 cwd 无关。 |
cd
命令无法改变脚本中的 cwd
?A:脚本中的 cd
仅影响子Shell进程,父进程(如终端)的 cwd
不变。需通过 source script.sh
或 . script.sh
在当前Shell执行。
cwd
?A:通常需要重启进程或通过调试工具(如 gdb
)注入,但高风险!建议修改配置后重启。
cwd
:bash
$ ps -eo pid,cwd,cmd
cwd
:c
#include <unistd.h>
char cwd[1024];
getcwd(cwd, sizeof(cwd)); // 返回当前工作目录
通过理解 cwd
,可以更精准地控制文件路径和进程行为,避免“文件不存在”等常见错误。