Próbuję skompilować kod ARM w Ubuntu 12.04.
Wszystko działa dobrze, kiedy umieszczam mój kod w katalogu lokalnym. Ale kiedy umieszczam kod w cytowanym katalogu montowania, ten błąd się zdarza:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Oto moje polecenie mount:
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
Używam Ubuntu 12.04 64bit
Co spowodowałoby ten błąd?
cd [PATH]
swoją powłokę, aby przejść do istniejącej.Odpowiedzi:
Wystąpił ten błąd przy użyciu jshint poprzez podprocesję python na Ubuntu 12.10 64 bit.
Jest to spowodowane tym, że katalog został usunięty lub przeniesiony spod niego i nie można ustalić bieżącego katalogu.
Jak stwierdzić, czy masz ten problem:
Uruchom polecenie
cd .
(jeśli pojawi się ten błąd, masz ten problem).Próbowałeś zmienić katalog na bieżący katalog, ale nie mogłeś.
Jak odtworzyć błąd:
Ten błąd dotyczy jshint. Utwórz katalog
foo
, włóż do niego cd, utwórz plik o nazwiemyjavascript.js
jshint działa poprawnie, mówi, że nie ma błędów, które są poprawne.
Otwórz drugi terminal i wyjmij
rm -rf
katalog/home/el/foo
spod spodu.Uruchom
jshint myjavascript.js
ponownie z pierwszego terminala, a pojawi się błąd:Katalog zniknął! I nawet jeśli miałbyś zastąpić go tą samą zawartością, ma on inną sygnaturę i terminal nie może odzyskać, metoda
getcwd
nie może wiedzieć, jaki jest bieżący katalog.Trzy rozwiązania:
Terminal jest zdezorientowany co do bieżącego katalogu, ponieważ jego nie ma lub jego podpis się zmienił. Wykonaj jedną z nich, aby to naprawić:
Uruchom polecenie,
cd ..
aż przestaną pojawiać się błędy. Spowoduje to ponowną synchronizację terminala z systemem plików. Następnie wróć do katalogu. Spróbuj ponownie. Błąd znika.Użyj
su youruser
w terminalu, wprowadź hasło. Odświeża i wraca do tego samego katalogu.Zamknij i ponownie otwórz terminal, który usuwa nieaktualne sygnatury katalogów. Lub wyślij wiadomość pocztową do dowolnego programu (jshint) lub tysięcy innych programów, które nie mogą tolerować lub odzyskać po starych podpisach katalogów.
źródło
cd ..
„wystarczająco często”, możesz równieżcd ~
przejść bezpośrednio do swojego katalogu głównegoOtrzymuję ten sam błąd, ale próbowałem uruchomić skrypt w moim katalogu domowym. Rozwiązałem to za pomocą:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
To przenosi mój do mojego katalogu domowego, następnie uruchamia pwd (ale możesz uruchomić wszystko, co chcesz), a następnie popd przenosi mnie z powrotem do miejsca, w którym byłem. Jeśli nie musisz się wtedy cofać
cd; pwd
Wystarczyłoby rozwiązać mój problem (mam nadzieję, że to pomoże w twoim).
edit Te
1>/dev/null
części są opcjonalne; Dodaję je, aby móc użyć powyższej linii w skrypcie powłoki bez dodatkowych danych wyjściowych, które nie są potrzebne w tym przypadku.źródło
Nawet ja miałem ten sam problem z python virtualenv. Zostało to poprawione przez prosty restart
źródło
cd
do istniejącego katalogu.