답변:
대신 폴더의 내용을 삭제하십시오.
rm -r MYFOLDER/*
shopt -s dotglob
먼저 설정하면됩니다 .
rm -R /path/to/myfolder/*
모든 파일과 하위 폴더의 삭제를 승인하는 과도한 요청을 피하기위한 올바른 구문입니다. 수도에 주목하십시오 R
.
당신이 사용할 수있는:
rm -r MYFOLDER/{.[^.],.??*}
숨겨진 파일과 폴더도 삭제됩니다. MYFOLDER 디렉토리에 파일이 너무 많으면 대신 다음을 실행해야합니다.
ls MYFOLDER/{.[^.],.??*}|xargs rm -r
meta/
디렉토리에 500k가 넘는 파일이 있으므로 xargs 대안을 사용하고 싶었지만 다음과 같은 오류 메시지가 나타납니다. ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
bash
쉘을 사용하고 있는지 확인하십시오 . 쉘은 파일 패턴에 대해 "중괄호 확장"및 "정규 표현식"을 지원해야합니다.
내 생각에 가장 쉬운 방법은 자신을 포함하여 전체 디렉토리를 삭제 한 다음 폴더를 다시 만드는 것입니다. 이것이 좋은 솔루션이 아닌 상황 (예 : 무인 스크립트 또는 더 복잡한 파이프 라인)이지만 폴더를 삭제하지 않으려는 이유를 지정하지 않은 경우가 있습니다.
rm -rf foldername
mkdir foldername
죄송합니다. 당신은 (당신의 게시물을 다시 읽었습니다) 지정했습니다. 그래도 여전히 삭제하고 재생성 할 수 있습니다. 특히 명령을 서로 연결하면
rm -rf foldername && mkdir foldername
또는
rm -rf foldername; mkdir foldername