sh: 0: getcwd () не вдалося: на цитованому диску немає такого файлу чи каталогу


211

Я намагаюся скласти код ARM в Ubuntu 12.

Все добре працює, коли я кладу код у локальний каталог.

Але коли я ввожу код у цитованому каталозі версій, з'являється помилка:

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

Ось моя настройка у fstab

//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

Що тут відбувається? Що може спричинити цю помилку?


Я намагаюся в ubuntu 10.10 він добре працює з тим же конфігурацією.
CrazyKitty Rotoshi

49
Це повідомлення про помилку може бути спровоковано при спробі виконання команди з неіснуючого шляху (наприклад, якщо процес B видаляє папку, в якій зараз знаходиться процес A. Приклад реального життя: у терміналі A: mkdir ~/myfunnydir && cd ~/myfunnydirу терміналі B: rm -rf ~/myfunnydirі , нарешті , назад в термінал а ще: java --version)
дБмВт

Ваш каталог встановлено автоматично, але облікові дані зберігаються в /root. Звичайний користувач не зможе встановити його, оскільки обліковий запис не буде для них читабельним. Спробуйте зробити його як неавтоматичне кріплення та дозвольте кореневому монтувати його.
alvits

Відповіді:


564

Ця помилка зазвичай викликається запуском команди з каталогу, який більше не існує.

Спробуйте змінити каталог і запустити команду.


4
getcwdотримує поточний робочий каталог, і якщо каталог буде видалено або переміщено, він буде незадоволений! Дивіться посібник для Linux для getcwd
Hooman

2
Вам, можливо, доведеться це зробити, якщо ви видалили каталог, в якому ви були, і відтворили його в тому самому місці з тим же ім’ям.
Джексон

точно так! приємно!
farhad goodarzi

1
все, що я робив, це вдарив компакт-диск та перезапустив команду, і це спрацювало, дякую!
FreeSoftwareServers

Я сам це помітив під час запуску апт-get оновлення з неіснуючого каталогу. Повідомлення спамується приблизно 20 разів, тоді оновлення триває так, ніби нічого не сталося. Я сподівався знайти більше інформації про те, чому apt-get навіть піклується про те, в якій папці я перебуваю, особливо так наполегливо з таким невеликим наслідком.
Даррен Рінгер

11

Спробуйте наступну команду, вона працювала для мене.

cd; cd -

що це? що це означає?
dılo sürücü

cd;зазвичай перенесе вас до домашнього каталогу і cd -поверне вас до каталогу, в якому ви знаходилися безпосередньо перед поточним каталогом. Тому в основному ви переходите до домашнього каталогу та повертаєтесь назад. Однак якщо початковий каталог, в якому ви були, видалено, це не працюватиме.
Hooman

7

Це теж трапилося зі мною у відтвореному каталозі, каталог той самий, але щоб знов працювати, просто запустіть:

cd .

6

Це може статися із посиланнями іноді. Якщо у вас виникла ця проблема, і ви знаєте, що перебуваєте у вже існуючому каталозі, але ваше посилання може змінитися, ви можете скористатися цією командою:

cd $(pwd)

4

У Ubuntu 16.04.3 LTS для мене працює наступна команда:

exit

Потім я знову ввійду.


2
насправді достатньо було б перейти на існуючий каталог, як уже сказав Гоман у своїй відповіді
derHugo

2

Перевірте, чи існує шлях до каталогу. Ця помилка виникає, якщо папка не існує там, де ви виконуєте команду. Можливо, ви виконали команду видалення з того самого шляху в командному рядку.


1
Про це вже сказав Гоман у своїй відповіді
derHugo

0

У моєму випадку нічого вище не вийшло. Після удару головою об стіну на деякий час я виявив, що я знищив /etc/passwdзаписи, запустивши на замовлення-linux-сервер-setup-bash-скрипт, який добре працював раніше, але цього разу регулярний вираз команда "sed" стерла всі існуючі записи: D Після копіювання вставлення стандартних записів з іншого робочого сервера Linux я могла нарешті перезапустити sshd.

Тому не забудьте створити резервну копію оригінального /etc/passwdфайлу, перш ніж застосовувати заміни регулярного виразу :)


-8

Навіть у мене була така ж проблема з python virtualenv Це було виправлено простим перезапуском

sudo shutdown -r now

4
насправді достатньо було б перейти на існуючий каталог, як уже давно сказав Хооман у своїй відповіді ...
derHugo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.