Mad*_*ern 47 terminology environment-variables
所以维基百科(链接)告诉我该命令pwd是“打印工作目录”的缩写,这是有道理的。
但是对于环境变量,“P”必须是打印以外的其他内容的首字母缩写词。
我听到人们谈论“当前工作目录”,这听起来更好,更直观,但环境变量似乎仍然被称为 $PWD,而不是 $CWD。从来没有人说“你检查了打印工作目录变量了吗?”。
我目前正在使用 web 应用程序服务器 uWSGI,运行时它告诉我(在 uWSGI 统计页面上):
"cwd":"/home/velle/greendrinks",
Run Code Online (Sandbox Code Playgroud)
所以他们显然喜欢(更直观的首字母缩写词)cwdover pwd。
我想我想弄清楚是我误解了什么,还是只是给环境变量一个不直观的名字?
Thu*_*shi 38
这取决于你在做什么。首先,$PWD是一个环境变量,pwd是一个内置的 shell 或一个实际的二进制文件:
$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
Run Code Online (Sandbox Code Playgroud)
现在,$PWD除非您使用-P标志,否则bash 内置将简单地打印当前值。如中所述help pwd:
pwd: pwd [-LP]打印当前工作目录的名称。
选项:
-L
打印
$PWD它是否命名当前工作目录的值-P
打印物理目录,没有任何符号链接
默认情况下,'pwd' 的行为就像指定了 '-L' 一样。
该pwd二进制,而另一方面,通过获取当前目录下getcwd(3)的系统调用,它返回相同的值readlink -f /proc/self/cwd。为了说明这一点,请尝试进入一个链接到另一个目录的目录:
$ ls -l
total 4
drwxr-xr-x 2 terdon terdon 4096 Jun 4 11:22 foo
lrwxrwxrwx 1 terdon terdon 4 Jun 4 11:22 linktofoo -> foo/
$ cd linktofoo
$ echo $PWD
/home/terdon/foo/linktofoo
$ pwd
/home/terdon/foo/linktofoo
$ /bin/pwd
/home/terdon/foo/foo
Run Code Online (Sandbox Code Playgroud)
所以,综上所述,在GNU系统(如Ubuntu),pwd并且echo $PWD是等价的,除非你使用的-P选项,但是/bin/pwd是不同的,并且表现得像pwd -P。
来源 https://askubuntu.com/a/476633/291937
jcb*_*rmu 22
$PWD是P的当前的athname W¯¯工作会有d irectory
当有符号链接时,从读取$PWD到执行命令可能会产生不同的结果pwd。
| 归档时间: |
|
| 查看次数: |
113972 次 |
| 最近记录: |