Sobald ich bei Bash auf Tab klicke, wird die Fehlermeldung angezeigt. Was ist los?
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
Manchmal lautet die Fehlermeldung:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No s uch file or directory
Wie löse ich das Shell-Init-Problem?
echo $HOME
;; Wenn das auf einen nicht existierenden Ort hinweist, ist es das nicht.cd .
$PWD
wird von POSIX garantiert definiert. Siehe pubs.opengroup.org/onlinepubs/9699919799/utilities/…Wechseln Sie einfach das Verzeichnis in ein anderes und kehren Sie zurück. Wahrscheinlich wurde dieser gelöscht oder verschoben.
quelle
Tritt dies zufällig in einem Verzeichnis auf, das OverlayFS (oder einen anderen speziellen Dateisystemtyp) verwendet?
Ich hatte gerade dieses Problem, bei dem meine
getcwd
überkompilierte Version von bash eine interne Implementierung verwendet, bei der Probleme mit OverlayFS auftreten. Informationen dazu habe ich hier gefunden:Sie können bash mit konfigurieren und neu erstellen
bash_cv_getcwd_malloc=yes
(wenn Sie tatsächlich bash erstellen und Ihre C-Bibliothek einen getcwd-Aufruf ausführt).quelle
Ja, cd; und cd - würde funktionieren. Der Grund dafür ist, dass das Verzeichnis von einem anderen Terminal oder einem anderen Programm gelöscht und neu erstellt wird. Daher wird der i-Node-Eintrag so geändert, dass das Programm nicht auf den alten i-Node-Eintrag zugreifen kann.
quelle