Подтвердить что ты не робот

Проблема с init init при нажатии вкладки, что случилось с getcwd?

как только я нажму Tab на bash, появится сообщение об ошибке, что не так?

symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success

иногда сообщение об ошибке:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No s uch file or directory

как решить проблему оболочки оболочки?

4b9b3361

Ответ 1

Это обычно происходит, когда ваш текущий каталог больше не существует. Скорее всего, с другого терминала вы удалите этот каталог (из script или что-то еще). Чтобы избавиться от этого, в случае, если ваш текущий каталог был воссоздан тем временем, просто cd в другой (существующий) каталог, а затем cd назад; самым простым было бы: cd; cd -.

Ответ 2

Просто измените каталог на другой и вернитесь. Вероятно, это было удалено или перемещено.

Ответ 3

Случайно ли это происходит в каталоге с использованием OverlayFS (или другого специального типа файловой системы)?

У меня была эта проблема, когда моя кросс-скомпилированная версия bash использовала внутреннюю реализацию getcwd, которая имеет проблемы с OverlayFS. Я нашел информацию об этом здесь:

Похоже, что это можно проследить до внутренней реализации getcwd() в bash. При скрещенном компиляции он не может проверить использование getcwd() malloc, поэтому он осторожен и устанавливает GETCWD_BROKEN и использует внутренняя реализация getcwd(). Эта внутренняя реализация похоже, не работает с OverlayFS.

http://permalink.gmane.org/gmane.linux.embedded.yocto.general/25204

Вы можете настроить и перестроить bash с помощью bash_cv_getcwd_malloc=yes (если вы действительно строите bash, а ваша библиотека C выполняет malloc-вызов getcwd).

Ответ 4

Да, cd; и cd - будут работать. Причина, по которой это видно, заключается в том, что каталог удаляется из любого другого терминала или любой другой программы и воссоздает его. Поэтому запись i- node изменяется, поэтому программа не может получить доступ к старой записи i-w630.