Я пытаюсь скомпилировать код 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
Что может вызвать эту ошибку?
cd [PATH]
вашу оболочку, чтобы перейти к существующей.Ответы:
Я получил эту ошибку, используя jshint через подпроцесс python на Ubuntu 12.10 64 бит.
Это вызвано тем, что вы удалили или переместили каталог из-под него, и текущий каталог не может быть определен.
Как узнать, если у вас возникла эта проблема:
Запустите команду
cd .
(если вы получаете эту ошибку, то у вас есть эта проблема).Вы пытались изменить каталог на текущий каталог, и не смогли.
Как воспроизвести ошибку:
Эта ошибка затрагивает jshint. Создайте каталог
foo
, перейдите в него, создайте файл с именемmyjavascript.js
Jshint работает правильно, он говорит, что нет ошибок, которые являются правильными.
Откройте 2-й терминал и
rm -rf
каталог/home/el/foo
снизу.Запустите
jshint myjavascript.js
снова из вашего первого терминала, и вы получите ошибку:Каталог исчез! И даже если вы замените его тем же содержимым, у него будет другая подпись, и терминал не сможет восстановить, метод
getcwd
не может знать, каков текущий каталог.Три решения:
Терминал не понимает, что такое текущий каталог, потому что его нет или его подпись изменилась. Сделайте одно из них, чтобы исправить это:
Запускайте команду,
cd ..
пока не перестанете получать ошибки. Это повторно синхронизирует терминал с файловой системой. Затем перейдите в ваш каталог. Попробуйте еще раз. Ошибка уходит.Используйте
su youruser
в терминале, введите пароль. Он обновляет и возвращает вас в тот же каталог.Закройте и снова откройте терминал, который удаляет устаревшие подписи каталога. Или отправьте настойчивое сообщение какой-либо программе (jshint) или тысячам других программ, которые не могут переносить устаревшие подписи каталогов или восстанавливать их.
источник
cd ..
«достаточно часто», вы также можете простоcd ~
перейти прямо в свою домашнюю папкуЯ получаю ту же ошибку, но я пытался запустить скрипт в моем домашнем каталоге. Я решил это с:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Это переместит меня в мой домашний каталог, затем запустит pwd (но вы можете запустить все что угодно), а затем popd вернет меня туда, где я был. Если вам не нужно двигаться назад, то
cd; pwd
Было бы достаточно, чтобы решить мою проблему, (я надеюсь, что это поможет с вашей.)
править Эти
1>/dev/null
части не являются обязательными; Я добавляю их, чтобы использовать вышеуказанную строку в сценарии оболочки без дополнительного вывода, которое в этом случае не требуется.источник
Даже у меня была такая же проблема с python virtualenv. Это было исправлено простым перезапуском
источник
cd
в существующий каталог.