Я не думаю, что bash делает что-то необычное (он кеширует пути к исполняемым файлам, указанным без путей, но здесь это неприменимо, так как вы указываете путь)
Похоже, каталог, в котором вы были, был перемещен или смонтирован. В случае создания программного обеспечения, перемещение каталога более вероятно.
Случай перемещения каталога
Пример воссоздания поведения перемещения каталога в терминале 1
cd /tmp
mkdir dir1
cd dir1
touch exampleFile
Затем в терминале 2:
cd /tmp
mv dir1 dir2
mkdir dir1
cd dir1
Обе оболочки отображаются как находящиеся в каталоге с именем 'dir1', но список будет отображать различное содержимое. Если терминал2 создает файл с именем «exampleFile», обе оболочки будут показывать «exampleFile» в «dir1», но это разные файлы. Это потому, что оболочка в терминале 1 фактически находится в dir2, она просто не знает об этом. Оболочка в терминале 1 может добраться до реального dir1 через cd:
cd .
Это выглядит странно, но заново разрешает путь.
Над креплением
Это происходит, когда оболочка (или любая программа) находится в каталоге, а затем над ним монтируется файловая система. Например, в терминале 1:
mkdir /tmp/dir1
cd /tmp/dir1
терминал 2:
mount /dev/whateverdev /tmp/dir1
cd /tmp/dir1
Терминал 1 видит файлы из исходной файловой системы в этом каталоге. Терминал 2 видит файлы из /dev / whatdev.
Как избежать
В случае перемонтирования, это в основном просто осведомленность о том, что вы делаете или как настроена ваша машина (например, если автомонтирование работает, когда подключен USB-накопитель).
В случае перемещения каталогов это зависит немного больше от системы сборки. Если существует правило, которое создает резервную копию старого выходного каталога, перемещая его, а затем создает новый каталог для новой сборки, вы будете сталкиваться с этой ситуацией довольно часто. Проверьте ваши правила сборки для обмана.
Конечно, это также мог быть случайный случайный несчастный случай (аналогичный тому, что был показан в первом примере выше). В этом случае, понимание того, что это может произойти, поможет вам.