在 bash 提示符一上,三个或更多斜杠 (/,///,////, ...) 被视为单个斜杠,而两个斜杠 (//) 则保留原样:
12:07 $ cd /
12:07 $ pwd
/
12:07 $ cd //
12:07 $ pwd
//
12:07 $ ls
bin boot cdrom dev etc home initrd.img lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var vmlinuz
12:07 $ cd ///
12:07 $ pwd
/
12:07 $ ls
bin boot cdrom dev etc home initrd.img lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var vmlinuz
通常嫌疑人的版本:
12:07 $ bash --version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
12:20 $ dpkg-query -s coreutils | grep Version
Version: 8.21-1ubuntu5
答案1
为了显示当前目录,bash
保留一些内部状态,这些状态不一定对应于当前目录的实际(最短)路径。如果您cd
通过软链接,这有助于保留路径。
(cd //
而且在执行例如时cd //tmp
)似乎不会触发对显示的内部路径的清理pwd
,但两个以上/
似乎会触发此操作。