sh: 0: getcwd () başarısız oldu: Böyle bir dosya veya dizin yok


11

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

Kodumu yerel dizine koyduğumda her şey iyi çalışıyor. Ancak kodu belirtilen bağlanma dizinine koyduğumda bu hata olur:

sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory

İşte benim mount komutu:

sudo mount -t cifs -o username=wx,passwd=wx,auto,nounix,noserverino,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm,rw,uid=1002,gid=1002 //192.165.54.18/prj_9330  /home/dongjw/work_dir/work_9330

Ubuntu 12.04 64bit kullanıyorum

Bu hataya ne sebep olur?


1
Çalışma dizininiz artık mevcut değil. Tip cd [PATH]varolan birine gitmek için kabuğunda.
David Foerster

Yanıtlar:


7

Ubuntu 12.10 64 bit bir python alt süreci ile jshint kullanarak bu hatayı aldım.

node.js:464
var cwd = process.cwd();
                  ^
Error: ENOENT, no such file or directory
    at Function.resolveArgv0 (node.js:464:23)
    at startup (node.js:51:13)
    at node.js:555:3

Bunun nedeni, bir dizini altından silmeniz veya altından taşımanızdır ve geçerli dizin belirlenemez.

Bu sorunu yaşayıp yaşamadığınızı nasıl anlarsınız:

Komutu çalıştırın cd . (Bu hatayı alırsanız bu sorunla karşılaşırsınız).

el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent 
directories: No such file or director

Geçerli dizininizdeki dizini değiştirmeye çalıştınız ve değiştiremediniz.

Hata nasıl yeniden oluşturulur:

jshint bu hatadan etkilenir. Bir dizin oluşturun foo, içine cd koyun,myjavascript.js

cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js

jshint düzgün çalışıyor, doğru hata olmadığını söylüyor.

2. bir terminal açın ve alttan rm -rfdizin açın /home/el/foo.

rm -rf /home/el/foo

jshint myjavascript.jsİlk terminalinizden tekrar çalıştırın ve bir hata mesajı alıyorsunuz:

el@apollo:~/foo$ jshint myjavascript.js 

    node.js:464
        var cwd = process.cwd();
                      ^
    Error: ENOENT, no such file or directory
        at Function.resolveArgv0 (node.js:464:23)
        at startup (node.js:51:13)
        at node.js:555:3

Dizin gitti! Ve aynı içerikle değiştirseniz bile, farklı bir imzası vardır ve terminal kurtarılamaz, yöntem getcwdgeçerli dizinin ne olduğunu bilemez.

Üç Çözüm:

Terminal, yürürlükteki dizinin ne olduğu konusunda kafası karışık. Düzeltmek için bunlardan birini yapın:

  1. cd ..Hata almayı durdurana kadar komutu çalıştırın . Bu terminali dosya sistemi ile yeniden senkronize eder. Sonra dizininize geri cd. Tekrar deneyin. Hata giderilir.

  2. su youruserTerminalde kullanın , şifreyi girin. Tazelenir ve sizi aynı dizine geri getirir.

  3. Eski dizin imzalarını temizleyen terminali kapatıp yeniden açın. Veya herhangi bir programa (jshint) veya eski dizin imzalarına tahammül edemeyen veya onlardan kurtulamayan binlerce başka programa bir kötü amaçlı posta gönderin.


cd .."genellikle yeterli" çalıştırmak yerine, cd ~doğrudan ev klasörünüze de ulaşabilirsiniz
derHugo

4

Aynı hatayı alıyorum, ancak ana dizinde bir komut dosyası çalıştırmaya çalışıyordum. Ben çözdüm:

pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null

Bu benim ana dizinime taşır, sonra pwd çalıştırır (ama istediğiniz herhangi bir şeyi çalıştırabilirsiniz) ve sonra popd beni bulunduğum yere geri taşır. Eğer geri gitmene gerek yoksa

cd; pwd

Sorunumu çözmek için yeterli olurdu, (umarım seninkiyle yardımcı olur.)

düzenlemek The 1>/dev/nullparts are option; Ben, bu durumda gerekli olmayan ek çıktı olmadan bir kabuk komut dosyası içinde yukarıdaki satırı kullanabilmek için onları ekleyin.


Böylece bunu bir bash betiğine geçebilirim ve istemediğim çıktıyla sonuçlanamam. Elimden geldiğince tam bir cevap eklemeye çalışıyorum çünkü commandline-fu bulduğumda, ihtiyaçlarımı azaltmayı kolay buluyorum ve bunu kullanan herkesin benim gibi olmasını bekliyorum.
Alexx Roche

Tamam, açıklayan bir düzenleme ekledim, (bazıları yumurta emmeyi öğrettiğimi düşünüyor olsa da - bilenler düzenlemeye ihtiyaç duymayanlar ve bilmeyenler kes-n-yapıştırabilir veya doğrudan orijinal soru ile ilgili olmayan işlev.)
Alexx Roche

Ne yazık ki öyle :(
Braiam

-1

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

sudo shutdown -r now

2
Bunu düzeltmek için yeniden başlatmanız gerektiğini düşünmüyorum, sadece diğer cevapları burada ve cdmevcut bir dizine takip edin.
wjandrea

Yeni bir sorunuz varsa, lütfen Soru Sor düğmesini tıklayarak sorun . Bağlam sağlamaya yardımcı oluyorsa bu soruya bir bağlantı ekleyin. - Yorumdan
N0rbert

1
@ N0rbert Bu yeni bir soru değil, açıkça bir IMHO geçerli (her ne kadar optimal olmasa da) bir çözüm bulma ve sağlama girişimidir.
Bayt Komutanı

@ByteCommander Bunu yanlışlıkla tıkladım, üzgünüm.
N0rbert
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.