touch 명령을 사용하려면 언제 파일이 있어야 합니까? [복사]

touch 명령을 사용하려면 언제 파일이 있어야 합니까? [복사]

가끔 전혀 존재하지 않는 파일을 터치했는데, 명령을 실행한 후 파일이 생성되는 현상이 나타났습니다. 그러나 터치한 디렉터리에 따라 "해당 파일이나 디렉터리가 없습니다."라는 오류가 발생합니다.

예를 들어 를 실행하면 touch foo.txtfoo.txt 파일이 내 홈 디렉터리에 생성됩니다. 반대로, 내가 실행하면 touch /bar/foo.txt, 나는 그것을 얻습니다 touch: cannot touch '/bar/foo.txt': No such file or directory.

이것의 논리는 무엇입니까? 감사해요.

답변1

touch명령에는 대상 파일이 필요하지 않지만 대상 파일의 상위 디렉터리가 필요합니다. 따라서 실행하려면 touch /bar/foo.txt해당 디렉터리가 이미 존재하는지 확인해야 합니다 /bar/.

대부분의 명령줄 프로그램과 마찬가지로 이 touch명령은 사용자가 제공하는 경로 인수가 상대 경로라고 가정합니다. 따라서 touch foo.txt현재 작업 디렉터리에 파일이 생성됩니다. 현재 디렉터리가 홈 디렉터리인 경우 foo.txt홈 디렉터리에 생성됩니다.

답변2

/bar/foo.txt가 root/bar/foo.txt를 찾고 있기 때문에 "해당 파일이나 디렉터리가 없습니다" 오류가 발생합니다. 홈 디렉터리에서 "bar/foo.txt"(/bar/foo.txt 대신)를 시도해 보세요. bar 디렉토리가 홈 디렉토리에 존재한다고 가정

관련 정보