5

Итак, я использую 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$

Wat?! Хорошо, просто чтобы убедиться:

ch04$ pwd
/home/m/learn/forth/starting-forth/ch04

Моя оболочка bash в виртуальном терминале [точнее LilyTerm] в сеансе XFCE в Manjaro Linux. Я не думаю, что сделал какие-то странные настройки, и система в целом довольно новая (первоначальная установка в октябре 2014 года на новый ноутбук).

Итак, у кого-нибудь есть идеи, что может вызвать это?

ОБНОВЛЕНИЕ: Один факт, который мне не приходил в голову раньше (хотя я не знаю, почему это будет иметь значение), заключается в том, что это происходит в рабочем каталоге Git.

ОБНОВЛЕНИЕ 2: Очевидно, такое поведение происходит всякий раз, когда существует существующий каталог, имя которого такое же, за исключением последнего символа (или двух символов?), В качестве несуществующего каталога, к которому я пытаюсь перейти. Например:

[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]$ cd dxx179
bash: cd: dxx179: No such file or directory
[tmp]$ cd dxx1790
dxx17903
[dxx17903]$ cd ..
[tmp]$ mkdir foot
[tmp]$ mkdir food
[tmp]$ cd fool
foot
[foot]$ cd ..
[tmp]$ cd football
bash: cd: football: No such file or directory
[tmp]$ cd foo
foot
[foot]$

И так далее ... кажется, что, когда существует более одного каталога, который "соответствует" (таким странным и нежелательным образом), вы переходите на тот, который был создан первым.

1 ответ1

3

Проверьте

shopt cdspell

Если это установлено, и вы cd к каталогу, который не существует, оболочка проверит, есть ли каталог с именем, похожим на то, что вы ввели.  (Предполагается, что вы допустили орфографическую ошибку.)  Если он находит что-то похожее на то, что вы ввели, он предполагает, что это именно то, что вы имели в виду, и это общеизвестно неразборчиво - если есть несколько имен, похожих на то, что вы ввели (например, cab , cad , can , cap , car и cat), он выберет один, казалось бы, наугад.

Или, может быть, это тот, который появляется первым в каталоге (который, вероятно, самый старый).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .