디렉토리를 삭제하지 않고 디렉토리의 모든 파일과 하위 디렉토리를 제거하는 명령이 있습니까?
예를 들어 하위 디렉토리가 “1”, “2”, “3”인 “dontDeleteMe”디렉토리가 있고 각 하위 디렉토리에 사진이 몇 개있는 경우 하위 디렉토리 “1”, “2”및 “3”을 제거하는 방법 부모 디렉토리 “dontDeleteMe”를 제거하지 않고 그 안에있는 모든 파일?
답변
모든 것을 제거하려면 에서 디렉토리를 제거하지 않고 디렉토리를 입력 :
rm -rfv dontDeleteMe/*
이 /*부분은 매우 중요합니다. 앞에 공백을 넣으면 *현재 디렉토리의 모든 파일이 삭제됩니다.   
또한, 매우 노는 조심 rm, -r와 *같은 명령의 모든. 그들은 비참한 조합이 될 수 있습니다.    
업데이트 :   좋아, 숨겨진 점 파일 (처음에 점이있는 파일 이름, 예 .hidden)이 있으면 파일이 그대로 유지됩니다.  
따라서 원래 질문에 대한 가장 간단한 해결책 은 다음과 같습니다.
rm -rfv dontDeleteMe && mkdir dontDeleteMe
또 다른 방법은 find의 -exec옵션이나 파이프를 사용하는 것입니다 xargs(아래).
find dontDeleteMe/* -print0  | xargs -0  rm -rv
답변
rm -r ./*항상 작동하지 않는 유일한 이유 는에 일치하지 않는 숨겨진 파일 및 / 또는 폴더를 가질 수 있기 때문 *입니다.
이를 bash위해 *숨겨진 개체까지 모든 항목을 일치 시키는 옵션을 제공하십시오 .
cd dont-delete-me
shopt -s dotglob
rm -r ./*
dotglob위 명령을 실행 한 쉘을 계속 사용하는 경우 기본 (설정되지 않은) 상태 로 재설정 하는 것이 유용 할 수 있습니다 .
shopt -u dotglob 
답변
열린 터미널 ( Ctrl+ Alt+ T) 개미 유형은 다음과 같습니다.
find somedir -mindepth 1 -delete
이것은 모든 파일과 디렉토리 내에서 일치 somedir하고 (손자) 어린이 “숨겨진”점 파일을 포함하지만 제외 somedir있기 때문에 그 자체를 -mindepth 1한 후, -delete그들을.
답변
find /dontDeleteMe/ -xdev -depth -mindepth 1 -exec rm -Rf {} \;
xdev장치 경계 내에서만 파일을 삭제 하려면 옵션을 사용하십시오 .
답변
“dontdelete”라는 기본 디렉토리를 제외한 모든 파일과 하위 디렉토리를 삭제하려면 (터미널에서) :
rm -rf dontdelete/*
답변
플래그 find와 함께 사용할 수 있습니다 -delete.
find dontDeleteMe/* -delete
는 /*이 이야기로 중요하다 find“dontDeleteMe”라는 폴더 안에 만 검색 할 수 있습니다.
또한 -delete플래그가 find명령 의 끝에 있는지 확인 하십시오 .
답변
rm -rf  directory/{.*,/*}
뭐라고 :
로 시작하는 모든 파일을 제거하십시오. “디렉토리”및 다른 모든 파일에도.
Neftas가 친절하게 언급했지만 이 솔루션 은 안전하지 않습니다!
보다 안전한 솔루션은 다음과 같습니다.
 rm -rf directory/!(.|..)