【发布时间】:2015-07-28 15:01:37
【问题描述】:
众所周知,Bash/terminal 中的 cd / 会将您带到您的根目录,无论您之前在哪里:
brian@brian-linux:~/redis-3.0.3$ cd /
brian@brian-linux:/$ pwd
/
brian@brian-linux:/$ ls
bin dev initrd.img.old libx32 opt sbin usr
boot etc lib lost+found proc srv var
cdrom home lib32 media root sys vmlinuz
data initrd.img lib64 mnt run tmp vmlinuz.old
brian@brian-linux:/$
我今天偶然发现了一个有趣的发现:
在 Bash 中,cd // 会将您带到目录//,它与根目录相同,但仍被描述为//:
brian@brian-linux:~/redis-3.0.3$ cd //
brian@brian-linux://$ ls
bin dev initrd.img.old libx32 opt sbin usr
boot etc lib lost+found proc srv var
cdrom home lib32 media root sys vmlinuz
data initrd.img lib64 mnt run tmp vmlinuz.old
brian@brian-linux://$ pwd
//
这是怎么回事,为什么会这样?
还值得注意的是cd /// 或任何大于2 的/ 将带你到根目录/。但是,从根目录,cd // 带你到//:
brian@brian-linux:/$ cd ///
brian@brian-linux:/$ cd //
brian@brian-linux://$
【问题讨论】:
-
@shekharsuman,
//所做的是实现定义的,因此您的操作系统可以使其指向任何地方而不会违反 POSIX。也就是说,/root是一个不寻常的选择;主要是/。 -
谢谢@PaulRoub,抱歉重复了。 Google 不符合 //.