bashでTabをクリックすると、エラーメッセージが表示されます。何が問題ですか?
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
シェルの初期化問題を解決するには?
これは通常、現在のディレクトリがもう存在しないときに発生します。ほとんどの場合、別の端末からそのディレクトリを削除します(スクリプト内など)。これを取り除くには、その間に現在のディレクトリが再作成された場合、単にcd
を別の(既存の)ディレクトリに移動し、その後cd
を戻します。最も簡単なのはcd; cd -
です。
ディレクトリを別のディレクトリに変更して戻ってください。おそらく削除または移動されたものです。
偶然、これはOverlayFS(または他の特殊なファイルシステムタイプ)を使用するディレクトリで発生していますか?
クロスコンパイルされたバージョンのbashが、getcwd
の内部実装を使用していて、OverlayFSに問題があるこの問題がありました。私はこれについての情報をここに見つけました:
これは、bashのgetcwd()の内部実装にトレースできるようです。クロスコンパイルされた場合、mallocのgetcwd()の使用を確認できないため、慎重であり、GETCWD_BROKENを設定し、getcwd()の内部実装を使用します。この内部実装は、OverlayFSではうまく機能しないようです。
http://permalink.gmane.org/gmane.linux.embedded.yocto.general/25204
bash_cv_getcwd_malloc=yes
を使用してbashを設定および再構築できます(実際にbashをビルドしていて、Cライブラリがgetcwd呼び出しをmallocする場合)。
はい、cd;およびCD-動作します。表示される理由は、ディレクトリが他の端末または他のプログラムから削除され、再作成されていることです。そのため、プログラムが古いiノードエントリにアクセスできないように、iノードエントリが変更されます。