touch: 'foo'に触れることができません:そのファイルまたはディレクトリがありません

touch: 'foo'に触れることができません:そのファイルまたはディレクトリがありません

このエラーメッセージが表示されたときにタッチが失敗する原因は何ですか?

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

不正な権限によって発生したエラーは異なって見えます。

touch: cannot touch `foo': Permission denied

答え1

次の順序でこのエラーメッセージが表示されます。

$ mkdir foo
$ cd foo

他の端末から:

$ rm -r foo

前の端末から:

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

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

答え2

私にはもう存在しないファイルへのシンボリックリンクを作成しようとしました。

$ ln -s file symlink
$ rm file
$ touch symlink
$ touch: cannot touch `symlink': No such file or directory

答え3

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

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

既定では、存在しないフォルダにファイルを作成しようとしています。

答え4

おそらく、これは将来的に誰かに役立つでしょう。

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

関連情報