sekmesini tıklattığınızda kabuk başlatma sorunu, getcwd ile ilgili sorun nedir?


153

bash sekmesini tıklattığınızda, hata mesajı görünecektir, sorun nedir?

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

bazen hata mesajı:

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

kabuk init sorunu çözmek için nasıl?

Yanıtlar:


281

Bu genellikle geçerli dizininiz artık mevcut olmadığında oluşur. Büyük olasılıkla, başka bir terminalden bu dizini kaldırırsınız (bir komut dosyasından veya herhangi bir şeyden). Bundan kurtulmak için, geçerli dizininizin bu arada yeniden oluşturulması durumunda, sadece cdbaşka bir (mevcut) dizine ve sonra cdgeri; En basit olacaktır: cd; cd -.


2
benim dir var olmadığını sanmıyorum, birisi onu yeniden yarattı değil, ben / kök ... bu yüzden sorun belki senin
dediğin

1
HOME env değişkeninizi kontrol edebilir misiniz? echo $HOME; bu varolmayan bir yeri gösteriyorsa, öyle değil.
Costi Ciudatu

1
(tmux'da shell kullanıyorum) Sekme birkaç kez iyi çalışıyor, ancak bazen tmux ile yeni bir sekme oluşturduğumda Tab tuşuna basın ve bu hata ortaya çıkıyor, ne olduğunu bilmiyorum :(
hugemeow 15:12

@kevinarpe Bunu bilmek güzel, teşekkürler! Her zaman hiçbir şey yapamayacak kadar zeki olduğumu düşünürdümcd .
Costi Ciudatu

2
@kevinarpe, evet, $PWDPOSIX tarafından tanımlanması garanti edilmektedir. Bkz. Pubs.opengroup.org/onlinepubs/9699919799/utilities/…
Charles Duffy

61

Sadece dizini bir başkasıyla değiştirin ve geri gelin. Muhtemelen biri silinmiş veya taşınmıştır.


7

Şans eseri, bu OverlayFS (veya başka bir özel dosya sistemi türü) kullanan bir dizinde mi oluyor?

Sadece bash çapraz derlenmiş getcwdsürümüm OverlayFS ile sorunları olan bir iç uygulama kullanacağı bu sorunu vardı . Burada bu konuda bilgi buldum:

Bu, bash içinde getcwd () 'nin dahili bir uygulamasına kadar takip edilebilir. Çapraz derlendiğinde, malloc'un getcwd () kullanımını kontrol edemez, bu yüzden dikkatli olur ve GETCWD_BROKEN'i ayarlar ve getcwd () 'nin dahili bir uygulamasını kullanır. Bu dahili uygulama OverlayFS ile iyi çalışmıyor gibi görünüyor.

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

İle bash'yi yapılandırabilir ve yeniden oluşturabilirsiniz bash_cv_getcwd_malloc=yes(eğer gerçekten bash oluşturuyorsanız ve C kütüphaneniz getcwd çağrısını bozuyorsa).


Tam kütüphane güncellemelerini yaparak hatayı düzeltebildim
Richard Day

5

Evet, cd; ve cd - işe yarar. Görebilmesinin nedeni, dizinin herhangi bir terminalden veya başka bir programdan silinip yeniden oluşturulmasıdır. Yani i-düğüm girişi değiştirilir, böylece program eski i-düğüm girişine erişemez.


Burada tam kütüphane güncellemelerini yaparak ubuntu 14'te düzeltmeyi başardım: digitalocean.com/community/tutorials/…
Richard Day
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.