web-dev-qa-db-fra.com

Problème d'initialisation du shell lorsque vous cliquez sur l'onglet, qu'est-ce qui ne va pas avec getcwd?

une fois que je clique sur Tab sur BASH, le message d'erreur apparaîtra, qu'est-ce qui ne va pas?

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

parfois, le message d'erreur est:

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

comment résoudre le problème d'initialisation de Shell?

140
hugemeow

Cela se produit généralement lorsque votre répertoire actuel n'existe plus. Très probablement, à partir d'un autre terminal, vous supprimez ce répertoire (dans un script ou quoi que ce soit). Pour vous en débarrasser, au cas où votre répertoire actuel aurait été recréé entre-temps, il vous suffit de placer cd dans un autre répertoire (existant), puis cd back; le plus simple serait: cd; cd -.

258
Costi Ciudatu

Changez simplement le répertoire en un autre et revenez. Celui-ci a probablement été supprimé ou déplacé.

54
Meetai.com

Est-ce que cela se produit par hasard dans un répertoire utilisant OverlayFS (ou un autre type de système de fichiers spécial)?

Je viens d'avoir ce problème où ma version multi-compilée de bash utiliserait une implémentation interne de getcwd qui présente des problèmes avec OverlayFS. J'ai trouvé des informations à ce sujet ici:

Il semble que cela puisse être attribué à une implémentation interne de getcwd () dans bash. Lorsqu'il est compilé de manière croisée, il ne peut pas vérifier l'utilisation de malloc par getcwd (). Il est donc prudent, il définit GETCWD_BROKEN et utilise une implémentation interne de getcwd (). Cette implémentation interne ne semble pas fonctionner correctement avec OverlayFS.

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

Vous pouvez configurer et reconstruire bash avec bash_cv_getcwd_malloc=yes (si vous construisez réellement bash et que votre bibliothèque C effectue un appel getcwd par malloc).

5
jdknight

Oui, cd; et cd - fonctionnerait. La raison en est que, le répertoire est en cours de suppression de tout autre terminal ou de tout autre programme et le recréer. Ainsi, l’entrée i-node est modifiée afin que le programme ne puisse pas accéder à l’ancienne entrée i-node.

4
Viraj Kulkarni