小编use*_*869的帖子

bash 中的 cd <nonexistent_directory> 导致 cd 到不同的目录?

好的,所以我已经使用 Linux 18 年了,从来没有见过或听说过这样的事情:

starting-forth$ ls
ch01/  ch02/  ch04/  ch05/  ch06/  text/
starting-forth$ cd ch07  # A directory I thought I might exist, but didn't
ch04
ch04$
Run Code Online (Sandbox Code Playgroud)

哇?!好的,只是为了确保:

ch04$ pwd
/home/m/learn/forth/starting-forth/ch04
Run Code Online (Sandbox Code Playgroud)

我的 shell 是 bash,在虚拟终端 [LilyTerm,确切地说],在 XFCE 会话中,在 Manjaro Linux 上。我认为我没有进行任何奇怪的自定义,并且整个系统相当新(2014 年 10 月在新笔记本电脑上首次安装)。

那么,任何人都知道是什么导致了这种情况?

更新:我之前没有想到的一个事实(尽管我不知道为什么会如此)是这发生在 Git 工作目录中。

更新 2:显然,只要存在名称相同的现有目录,除了最后一个字符(或两个字符?),作为我尝试 cd 到的不存在目录时,就会发生这种行为。例如:

[tmp]$ mkdir dxx17903
[tmp]$ cd dxx17907
dxx17903
[tmp]$ cd dxx179035
dxx17903
[dxx17903]$ cd ..
[tmp]$ cd dxx179005
bash: cd: dxx179005: No such file or directory
[tmp]$ …
Run Code Online (Sandbox Code Playgroud)

linux bash

6
推荐指数
1
解决办法
411
查看次数

标签 统计

bash ×1

linux ×1