什么可能导致触摸失败并出现此错误消息?
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
成功运行命令。