微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

unix内置`pwd`命令和它的$ PWD环境variables有什么区别?

这是这种情况。 我有一个目录调用: – %/ home / myname /

我在该目录中做了一个链接: – %cd / home / myname /%ln -s / home / others /。

现在,我cd /其他/从/ home / myname /这是有趣的部分。

当我做了一个unix内置的pwd命令,我得到了原始path名: – %/ home / others /

使用Mono为Linux创build可执行文件

在linux下如何处理CP-1252编码的密码

在Linux中创build虚拟networking接口?

PHP的Apache的权限 – 最佳实践

闰秒和pthread_mutex_timedlock提前超时

但是当我回显$ PWD环境variables,我得到的链接path名称: – %/ home / myname / others /

为什么?

获取shell命令输出的第一行

如何检测Linux板上GPIO引脚的变化

在Linux中strace init进程(PID 1)

检测到某个连接的USB设备

如何configurationgrails classpath以添加“src / groovy”文件夹(在Linux环境中)?

/ var#ls -l

lrwxrwxrwx 1 root root 10 Aug 22 13:21 mail - > spool / mail

drwxr-xr-x 2 root root 4096 Jul 1 20:58选择

drwxr-xr-x 22根root 4096 Dec 5 17:38运行

drwxr-xr-x 12 root root 4096 Aug 22 13:21 spool

drwxrwxrwt 14 root root 4096 Dec 6 02:46 tmp

/ var#cd邮件

/ var / mail#echo $ PWD

在/ var /邮件

/ var / mail#pwd

在/ var /邮件

/ var / mail#/ bin / pwd

在/ var / spool / mail中

换句话说,使用$PWD就足够了,因为无论如何pwd可能不会给你更好的结果(对于更好的定义)。

为什么? /bin/pwd使用操作系统特定的调用来确定当前的工作目录 – 在Linux的情况下,内核只保留已解析的目录(请参阅/proc/self/cwd ),而shell的pwds包含shell认为它是在。

/bin/pwd external命令与内建命令的区别在于外部命令不知道你在那里得到了什么样的cd操作,因此不会假装你的当前目录在符号链的某个地方; 它给你从根目录到当前目录的直接路径,就像realpath()函数一样。

请参阅在bash set -o physical 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐