방금 혼란스러운 오류를 발견했습니다.
rm: cannot remove `xxx/app/cache/prod': Directory not empty
이는 다음 명령으로 인해 발생합니다.
rm -rf $cache_dir/*
이는 $cache_dir
다음과 같이 정의됩니다.xxx/app/cache
그래서 나는 이것이 다음과 같이 진행된다고 생각합니다: rm
나는 dir 의 모든 것을 삭제 cache/prod
한 다음 cache/prod
디렉터리를 삭제하려고 시도하기 전에 다른 프로그램이 그 안에 파일/디렉토리를 생성하여 rm
오류를 일으켰습니다.
내 가정이 맞나요?
답변1
주어진 오류 메시지는 "디렉토리가 비어 있지 않습니다"( )입니다. 귀하의 가정이 정확하다고 생각하면 이는 프로그램이 파일을 삭제하려고 시도하기 전에 디렉터리에 파일을 생성하여 기본 예상 오류가 ENOTEMPTY
경쟁 조건입니다 .rm
ENOTEMPTY
rmdir(2)
노트:안전을 위해 디렉터리를 새 이름으로 이동하거나 이름을 바꾼 다음 이 디렉터리를 삭제할 수 있습니다.