簡體   English   中英

單擊選項卡時出現shell init問題,getcwd出了什么問題?

[英]shell init issue when click tab, what's wrong with getcwd?

一旦我點擊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

如何解決shell init問題?

當您的當前目錄不再存在時,通常會發生這種情況。 很可能,從另一個終端刪除該目錄(從腳本或其他內容)。 為了擺脫這種,如果當前目錄是在此期間重新創建,只是cd到另一個(現有)的目錄,然后cd回來; 最簡單的是: cd; cd - cd; cd -

只需將目錄更改為另一個目錄即可返回。 可能已刪除或移動了一個。

是偶然的,這是在使用OverlayFS(或其他特殊文件系統類型)的目錄上發生的嗎?

我剛剛遇到這個問題,我的交叉編譯版本的bash將使用getcwd的內部實現,它與OverlayFS有問題。 我在這里找到了相關信息:

看來這可以追溯到bash中getcwd()的內部實現。 當交叉編譯時,它無法檢查getcwd()是否使用malloc,因此它是謹慎的並設置GETCWD_BROKEN並使用getcwd()的內部實現。 這個內部實現似乎不適用於OverlayFS。

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

您可以使用bash_cv_getcwd_malloc=yes配置和重建bash(如果您實際構建bash並且您的C庫執行malloc getcwd調用)。

是的,cd; 和CD - 會工作。 它可以看到的原因是,目錄正在從任何其他終端或任何其他程序中刪除並重新創建它。 因此,i節點條目被修改,因此程序無法訪問舊的i節點條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM