[已解决]相对目录不跟随符号链接?

sh/bash/dash/ksh/zsh等Shell脚本
回复
科学之子
帖子: 2229
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 833 次
接收感谢: 30 次

[已解决]相对目录不跟随符号链接?

#1

帖子 科学之子 » 2017-08-30 23:26

代码: 全选

[email protected]:/sys/block/zram0/queue$ cat ../../zram0/queue/iostats
0
[email protected]:/sys/block/zram0/queue$ cat ../../sda/queue/iostats
cat: ../../sda/queue/iostats: No such file or directory
[email protected]:/sys/block/zram0/queue$ realpath  ../../
/sys/devices/virtual/block
[email protected]:/sys/block/zram0/queue$ ls -l /sys/devices/virtual/block
total 0
drwxr-xr-x  9 root root 0 Aug 30 23:31 dm-0
drwxr-xr-x  9 root root 0 Aug 30 23:31 dm-1
drwxr-xr-x 10 root root 0 Aug 30 23:31 loop0
drwxr-xr-x 10 root root 0 Aug 30 23:31 loop1
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop2
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop3
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop4
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop5
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop6
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop7
drwxr-xr-x  8 root root 0 Aug 30 23:31 zram0
[email protected]:/sys/block/zram0/queue$ ls -l  ../../
total 0
drwxr-xr-x  9 root root 0 Aug 30 23:31 dm-0
drwxr-xr-x  9 root root 0 Aug 30 23:31 dm-1
drwxr-xr-x 10 root root 0 Aug 30 23:31 loop0
drwxr-xr-x 10 root root 0 Aug 30 23:31 loop1
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop2
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop3
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop4
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop5
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop6
drwxr-xr-x  9 root root 0 Aug 30 23:31 loop7
drwxr-xr-x  8 root root 0 Aug 30 23:31 zram0
[email protected]:/sys/block/zram0/queue$ cd ../../
[email protected]:/sys/block$ ls
dm-0  dm-1  loop0  loop1  loop2  loop3  loop4  loop5  loop6  loop7  sda  sr0  zram0
我的理解在7楼,如果不对还请不吝赐教.
上次由 科学之子 在 2017-09-04 21:46,总共编辑 1 次。
头像
九天星
帖子: 1317
注册时间: 2007-07-14 20:45
送出感谢: 67 次
接收感谢: 37 次

Re: 相对目录不跟随符号链接?

#2

帖子 九天星 » 2017-08-30 23:52

不跟随
开源、共享、自由

微信号非公众号:xfiles_sky

用手机点击这里有奇迹发生,其他无效
头像
vickycq
论坛版主
帖子: 4552
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 994 次
联系:

Re: 相对目录不跟随符号链接?

#3

帖子 vickycq » 2017-08-31 9:15

这些用户感谢了作者 vickycq 于这个帖子:
科学之子 (2017-08-31 15:32)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
科学之子
帖子: 2229
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 833 次
接收感谢: 30 次

Re: 相对目录不跟随符号链接?

#4

帖子 科学之子 » 2017-08-31 16:02

求教用什么关键词搜到的?

根据我的理解:
https://github.com/wertarbyte/coreutils ... pwd.c#L328
pwd -L是先尝试读取环境变量,读取失败(PWD 变量不存在或数据无效)就会变成-P情况
pwd -P是直接使用xgetcwd的返回值
这个github的版本我没找到xgetcwd的定义
我用 apt-get source 下载了一份源码然后:

代码: 全选

[email protected]:~/Downloads/coreutils-8.26$ grep -e xgetcwd -rn --include='*.c'
src/pwd.c:27:#include "xgetcwd.h"
src/pwd.c:380:  wd = xgetcwd ();
src/find-mount-point.c:24:#include "xgetcwd.h"
src/find-mount-point.c:99:  mp = xgetcwd ();
lib/xgetcwd.c:1:/* xgetcwd.c -- return current directory with unlimited length
lib/xgetcwd.c:23:#include "xgetcwd.h"
lib/xgetcwd.c:35:xgetcwd (void)
lib/at-func2.c:206:         file1_alt = file_name_concat (xgetcwd (), file1, NULL);
lib/canonicalize.c:32:#include "xgetcwd.h"
lib/canonicalize.c:138:      rname = xgetcwd ();
xgetcwd其实就是调用getcwd来获取路径
似乎大多数独立的二进制程序都是用getcwd来确定工作目录的.
但shell(至少bash)优先尝试读取PWD环境变量
回复

回到 “Shell脚本”