Я пытаюсь скомпилировать код ARM в Ubuntu 12.04.
Все работает нормально, когда я помещаю свой код в локальный каталог. Но когда я помещаю код в указанный каталог монтирования, возникает эта ошибка:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Вот моя команда монтирования:
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
Что вызвало бы эту ошибку?
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
Это вызвано тем, что вы удалили или переместили каталог из-под него, и текущий каталог не может быть определен.
Запустите команду cd .
(Если вы получили эту ошибку, у вас есть эта проблема).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Вы пытались изменить каталог на текущий каталог, но не смогли.
jshint подвержен этой ошибке. Создайте каталог foo
, перейдите в него, создайте файл с именем myjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint работает правильно, он говорит, что ошибок нет, что является правильным.
Откройте второй терминал и rm -rf
каталог /home/el/foo
снизу.
rm -rf /home/el/foo
Запустите jshint myjavascript.js
снова с вашего первого терминала, и вы получите ошибку:
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
Каталог исчез! И даже если вы замените его тем же содержимым, у него будет другая подпись, и терминал не сможет восстановиться, метод getcwd
не может знать, что является текущим каталогом.
Терминал не понимает, что такое текущий каталог, потому что его нет или его подпись изменилась. Чтобы исправить это, выполните одно из следующих действий:
Выполняйте команду cd ..
, пока не прекратите получать ошибки. Это повторно синхронизирует терминал с файловой системой. Затем перейдите в ваш каталог. Попробуйте снова. Ошибка исчезает.
Используйте su youruser
в терминале, введите пароль. Он обновляет и возвращает вас в тот же каталог.
Закройте и снова откройте терминал, который сбрасывает устаревшие подписи каталога. Или отправьте настойчивое сообщение какой-либо программе (jshint) или тысячам других программ, которые не могут переносить устаревшие подписи каталогов или восстанавливаться после них.
Даже у меня была такая же проблема с python virtualenv. Это было исправлено простым перезапуском
sudo shutdown -r now
Я получаю ту же ошибку, но я пытался запустить скрипт в моем домашнем каталоге. Я решил это с помощью:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Это переместит мой в мой домашний каталог, затем запустит pwd (но вы можете запустить все что угодно) и затем popd вернет меня туда Я был. Если вам не нужно возвращаться назад, тогда
cd; pwd
будет достаточно для решения моей проблемы (надеюсь, это поможет вам.)
[ 119] править 1>/dev/null
части необязательны; Я добавляю их, чтобы использовать вышеуказанную строку в сценарии оболочки без дополнительного вывода, которое в этом случае не требуется.