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명령을 성공적으로 실행해야 했습니다.

관련 정보