sh:0:getcwd()が失敗しました:引用されたドライブにそのようなファイルまたはディレクトリはありません


212

Ubuntu 12でARMコードをコンパイルしようとしています。

コードをローカルディレクトリに配置すると、すべてが正常に動作します。

しかし、引用されたマウントディレクトリにコードを配置すると、エラーが表示されます。

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 2012

49
このエラーメッセージは、存在しないパスからコマンドを実行しようとするとトリガーされることがあります(たとえば、プロセスBが、プロセスAが現在あるフォルダーを削除した場合)。実際の例:ターミナルA:mkdir ~/myfunnydir && cd ~/myfunnydirターミナルB:rm -rf ~/myfunnydirそして最後に再びターミナルAに戻ります:java --version
dbm

ディレクトリは自動的にマウントされますが、認証情報はに保存され/rootます。通常のユーザーは、資格情報を読み取ることができないため、マウントできません。それを非自動マウントとして作成し、rootにマウントさせてください。
alvits 2014年

回答:


564

このエラーは通常、存在しないディレクトリからコマンドを実行したことが原因です。

ディレクトリを変更して、コマンドを再実行してください。


4
getcwd現在の作業ディレクトリを取得し、ディレクトリが削除または移動された場合、不幸になります!getcwdのLinuxマニュアルを
Hooman

2
自分がいたディレクトリを削除して、同じ場所に同じ名前で再作成した場合でも、これを行う必要がある場合があります。
ジャクソン

まさにその通り!いいね!
farhad goodarzi

1
私がしたすべてはcdを押してコマンドを再実行することでした、そしてそれはうまくいきました、ありがとう!
FreeSoftwareServers 2016年

存在しないディレクトリからapt-get upgradeを実行すると、このことに気づきました。メッセージは約20回スパムし、その後何も起こらなかったかのように更新が続行されます。特にapt-getが自分の現在のフォルダを気にする理由についての詳細情報を見つけたいと思っていました。
ダレンリンガー2017年

11

次のコマンドを試してみてください。うまくいきました。

cd; cd -

これはどういう意味ですか?
dılosürücü

cd;通常、ホームディレクトリcd -に移動し、現在のディレクトリの直前のディレクトリに戻ります。つまり、基本的にはホームディレクトリに移動して戻ってきます。ただし、元のディレクトリが削除されている場合、これは機能しません。
Hooman

7

再作成されたディレクトリでも同じことが起こりました。ディレクトリは同じですが、再度機能させるには、次のコマンドを実行します。

cd .

6

これは、シンボリックリンクで発生することがあります。この問題が発生し、既存のディレクトリにいることがわかっているが、シンボリックリンクが変更されている可能性がある場合は、次のコマンドを使用できます。

cd $(pwd)


2

ディレクトリパスが存在するかどうかを確認してください。このエラーは、コマンドを実行している場所からフォルダーが存在しない場合に発生します。コマンドラインで同じパスから削除コマンドを実行した可能性があります。


1
それはHoomanが彼の答えで
derHugo

0

私の場合、上記のどれもうまくいきませんでした。しばらく頭を壁にぶつけた後、私は/etc/passwd以前はうまく機能していたcustom-made-linux-server-setup-bash-scriptを実行しエントリが、今回は"sed"コマンドは既存のエントリをすべて消去しました:Dデフォルトのエントリを別の動作しているLinuxサーバーからコピーして貼り付けた後、ようやくsshdを再起動できました。

したがって/etc/passwd、正規表現の置換を適用する前に、元のファイルをバックアップすることを忘れないでください:)


-8

私もpython virtualenvで同じ問題を抱えていましたそれは単純な再起動で修正されました

sudo shutdown -r now

4
Hoomanがずっと前に彼の回答ですでに言ったように、実際には既存のディレクトリに切り替えるだけで十分です...
derHugo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.