![touch: 'foo'를 건드릴 수 없습니다: 해당 파일이나 디렉토리가 없습니다](https://linux55.com/image/42194/touch%3A%20'foo'%EB%A5%BC%20%EA%B1%B4%EB%93%9C%EB%A6%B4%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4%3A%20%ED%95%B4%EB%8B%B9%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%82%98%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EA%B0%80%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
이 오류 메시지가 나타나면서 터치가 실패하는 원인은 무엇입니까?
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
명령을 성공적으로 실행해야 했습니다.