touch: `foo 'にタッチできません:そのようなファイルまたはディレクトリはありません


21

このエラーメッセージでタッチが失敗する原因は何ですか?

touch: cannot touch `foo': No such file or directory

不正なアクセス許可によるエラーは異なって見えることに注意してください。

touch: cannot touch `foo': Permission denied

回答:


21

次のシーケンスにより、このエラーメッセージが表示されます。

$ mkdir foo
$ cd foo

別のターミナルで:

$ rm -r foo

前の端末で:

$ touch x
touch: cannot touch `x': No such file or directory

もちろん、そこにファイルを作成しようとするプロセスの現在の作業ディレクトリ(CWD)を無効にする他のイベントもこのエラーメッセージを生成します。


2
私の場合、GlusterFSマウントポイントの構成が間違っているために発生していましたが、これが発生する一般的なケースについては興味がありました。この種の質問は本当にクラスの宿題の問題でしょうか?
ロリンホッホシュタイン

3
一般的なケースは、現在のディレクトリが存在しないことです。maxschlepzigの例のように削除されたこととは別に、これは、ファイルシステムの動作がおかしいなどの奇妙な状況でのみ発生する可能性があります(あなたの場合)。この効果)。
ジル 'SO-悪であるのをやめる'

@lorin:さて、大学のUnix導入コースでは、宿題の一部としてそのような種類の質問をしました(たとえば、NFSの問題が同様のエラーメッセージで現れることがあるため)。ただ、好奇心から求めている...
maxschlepzig

3
元の答えでは、別の端末は必要ありませんrmdir ../foo。同じ端末で動作するはずです。ファイルシステムを誤動作させない別の可能性:ln -s directory-that-doesnt-exist/foo foo; touch foo
一時的な

「うーん、宿題の質問?」を編集すべきだと思います。答えのうち....それは正直非常に不快です。これは実際に私のコンピューターで起こったため、私はこのページにいます。しかし、この答えはそれをまったく解決しません。再起動が修正されたのはNFSの問題でしたが、根本的な原因が欲しいのです。
コデタク

4

私にとっては、もはや存在しないファイルを指しているシンボリックリンクに書き込もうとしていました:

$ ln -s ~/doomed/file ~/mysymlink
$ rm ~/doomed/file
$ touch ~/mysymlink
$ touch: cannot touch `mysymlink': No such file or directory

それでした!! 今はバカな感じ!ファイルがすぐに表示されるはずだったディレクトリで「ls -la」を実行するだけです。それは「resolv.conf」であり、クラッシュした更新のためにそこになかった場所を指していました。
stolsvik

1

メッセージをトリガーする別の(簡単な)方法:

$ mkdir foo
$ touch foo/bar/baz.txt
touch: cannot touch 'foo/bar/baz.txt': No such file or directory

基本的に、存在しないフォルダーにファイルを作成しようとしています。


0

多分これは将来誰かを助けるでしょう:

フォルダーに存在する唯一のファイルをで削除したときにも、同じ問題が発生しましたgit rm。したがって、gitは私がいたフォルダーを削除し、フォルダーが存在しないため、ファイルを作成しようとするとこのエラーがトリガーされます。そのため、フォルダーを手動で再作成し、そのフォルダーに移動して、touchコマンドを正常に実行する必要がありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.