touch: 파일을 만질 수 없습니다: 해당 파일이나 디렉터리가 없습니다.

touch: 파일을 만질 수 없습니다: 해당 파일이나 디렉터리가 없습니다.

오류가 발생합니다.

touch: cannot touch `/opt/tsrm/compliance/cme/log/20121207.log`: No such file or directory

터치 시 명령:touch $LOGFILE

또한 링크를 확인했습니다.touch: 'foo'를 건드릴 수 없습니다: 해당 파일이나 디렉토리가 없습니다, 하지만 대답을 이해하지 못합니다.

참고: 이것도 얻었습니다 . 옵션을 mkdir: cannot create directory추가하여 -p문제를 해결했습니다 .

이것이 내가 사용하고 있는 Linux 버전과 관련이 있을 수 있습니까?

답변1

파일을 저장할 경로가 없습니다.

/opt/tsrm/compliance/cme/log/

여기서 오류가 발생합니다.

답변2

경로를 잘못 입력하신 것 같습니다. 예를 들어 폴더가 /stuff/more_stuff존재하지 않습니다. 결과는 다음과 같습니다.

user@linux:~ $ touch /stuff/more_stuff/stuff.file
touch: cannot touch `/stuff/more_stuff/stuff.file': No such file or directory

둘 다 /stuff있어야 기능을 /stuff/more_stuff수행할 수 있습니다.touch

답변3

이 답변이 어리석게 들리더라도 누락된 디렉터리 외에도 값 주위에 문자열 구분 기호가 있을 수 있습니다.$LOGFILE

피복재:

LOGFILE=/stuff/more_stuff/stuff.file
touch $LOGFILE

작동 안함:

LOGFILE="/stuff/more_stuff/stuff.file"
touch $LOGFILE

일부 Linux 배포판에는 위와 같은 특징이 있으므로 주의하세요 ;)

답변4

예, 오타가 있거나 디렉토리가 존재하지 않을 수 있습니다.

LOGFILE="/opt/tsrm/compliance/cme/log/20121207.log"
LOG_DIR=`dirname $LOGFILE`
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
touch $LOGFILE

관련 정보