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。因此git删除了我所在的文件夹,任何创建文件的尝试都会触发此错误,因为该文件夹不再存在。所以我必须手动重新创建该文件夹,进入它并touch成功运行命令。

相关内容