sh: 0: getcwd () başarısız oldu: Belirtilen sürücüde böyle bir dosya veya dizin yok


212

Ubuntu 12 ARM kodu derlemeye çalışıyorum.

Kodu yerel dizine koyduğumda her şey iyi çalışıyor.

Ama gösterdiğim bağlanma dizinine kodu koyduğumda hata ortaya çıkıyor:

making testXmlFiles
sh: 0: getcwd() failed: No such file or directory
ARM Compiling xxxxx.c
sh: 0: getcwd() failed: No such file or directory

İşte fstab'daki ayarım

//10.0.0.1/data /mnt/data   cifs    auto,noserverino,credentials=/root/.smbcredentials,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm 0 0

Burada neler oluyor? Bu hataya ne sebep olabilir?


Ben ubuntu 10.10 denemek o aynı yapılandırma ile iyi çalışır.
CrazyKitty Rotoshi

49
Bu hata iletisi, var olmayan bir yoldan bir komut yürütülmeye çalışıldığında tetiklenebilir (örneğin, B işlemi A işleminin o sırada bulunduğu bir klasörü silerse. Gerçek bir örnek: terminal A'da: mkdir ~/myfunnydir && cd ~/myfunnydirterminal B'de: rm -rf ~/myfunnydirve son olarak geri terminali A'da tekrar: java --version)
dBM

Dizininiz otomatik olarak bağlanır, ancak kimlik bilgileri depolanır /root. Kimlik bilgileri kendileri tarafından okunamayacağı için normal bir kullanıcı bunu bağlayamaz. Otomatik olmayan bağlama olarak yapmayı deneyin ve kökün monte etmesine izin verin.
14'te

Yanıtlar:


564

Bu hata genellikle artık var olmayan bir dizinden komut çalıştırılması nedeniyle oluşur.

Dizininizi değiştirmeyi deneyin ve komutu yeniden çalıştırın.


4
getcwdgeçerli çalışma dizinini alır ve dizin silinir veya taşınırsa mutsuz olur! Getcwd için Linux El Kitabı'na
Hooman

2
Bulunduğunuz dizini sildiyseniz ve aynı adda aynı yerde bir dizini yeniden oluşturduysanız bunu yapmanız gerekebilir.
Jackson

kesinlikle doğru! Güzel!
farhad goodarzi

1
tüm yaptığım cd vurmak ve komutu yeniden çalıştırmak ve işe yaradı, teşekkürler!
FreeSoftwareServers

Varolmayan bir dizinden apt-get yükseltme çalıştırırken bunu kendim fark ettim. İleti yaklaşık 20 kez spam gönderir, ardından hiçbir şey olmamış gibi güncelleme devam eder. Neden apt-get'in hangi klasörde olduğumu, özellikle de bu kadar az sonuçla ısrarla umursadığım hakkında daha fazla bilgi bulmayı umuyordum.
Darren Ringer

11

Aşağıdaki komutu deneyin, benim için çalıştı.

cd; cd -

bu nedir? ne demek bu?
dılo sürücü

cd;genellikle sizi ana dizine cd -götürür ve sizi geçerli dizinden hemen önceki dizine geri götürür. Temel olarak ana dizine gidip geri dönersiniz. Ancak, bulunduğunuz özgün dizin silinirse, bu çalışmaz.
Hooman

7

Bu da bana yeniden yaratılmış bir dizinde oldu, dizin aynı ama tekrar çalışması için sadece çalıştırın:

cd .

6

Bu bazen sembolik bağlantılarda olabilir. Bu sorunla karşılaşırsanız ve var olan bir dizinde olduğunuzu biliyorsanız, ancak bağlantınız değişmiş olabilirse, şu komutu kullanabilirsiniz:

cd $(pwd)

4

Ubuntu 16.04.3 LTS'de bir sonraki komut benim için çalışıyor:

exit

Sonra tekrar giriş yapıyorum.


2
aslında
Hooman'ın

2

Lütfen dizin yolunu bulunup bulunmadığını kontrol edin. Klasör komutu çalıştırdığınız yerden yoksa bu hata ortaya çıkar. Muhtemelen komut satırında aynı yoldan bir kaldırma komutu yürüttünüz.


1
Hooman cevabında
derHugo

0

Benim durumumda yukarıdaki hiçbir şey işe yaramadı. Bir süre kafamı duvara vurduktan sonra, daha önce iyi /etc/passwdçalışan özel yapılmış bir linux-server-setup-bash-script çalıştırarak girişleri yok ettiğimi öğrendim , ancak bu sefer içindeki regex "sed" komutu varolan tüm girdileri sildi: D Başka bir çalışan linux sunucusundan varsayılan girişleri kopyaladıktan sonra nihayet sshd'yi yeniden başlatabilirim.

Bu yüzden /etc/passwdherhangi bir normal ifade değiştirmeyi uygulamadan önce orijinal dosyayı yedeklemeyi unutmayın :)


-8

Ben bile python virtualenv ile aynı sorunu yaşıyordu Basit bir yeniden başlatma ile düzeltildi

sudo shutdown -r now

4
aslında
Hooman'ın
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.