디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

디렉터리의 모든 파일과 하위 디렉터리를 삭제하려고 합니다. 예전에는 모든 파일을 삭제 했는데 rm -r, 모든 파일을 삭제하고 싶어요그리고최상위 디렉터리 자체를 제외한 하위 디렉터리.

예를 들어, 파일 과 하위 디렉터리를 images포함하는 .header.pngfooter.png

header.png이제 및 하위 디렉터리를 삭제하고 싶지만 footer.png삭제하지는 않습니다 images.

Linux에서 이 작업을 어떻게 수행할 수 있나요?

답변1

최상위 디렉토리의 이름이 지정되어 있으면 images를 실행하십시오 rm -r images/*. NET Framework에서 쉘 glob *연산자를 사용합니다 .rm -rimages

답변2

숨겨진 파일을 삭제하려면 다음을 지정해야 합니다.

rm -r images/* images/.*

.다음을 포함하는 쉘 의 경우 ..다음과 같은 오류가 발생합니다.

rm: cannot remove `.' directory `images/.'
rm: cannot remove `..' directory `images/..'

하지만 숨겨진 파일은 삭제됩니다.

오류 메시지가 없는 방법은 찾기/삭제 및 minlength를 사용하는 것입니다. 이것은 gnu-find입니다.

find images -mindepth 1 -delete

-mindepth귀하의 검색에 또는 조건자가 누락되었을 수 있으며 -delete, 이 경우 다음을 수행할 수 있습니다.

find images/. ! -name . -prune -exec rm -rf {} +

답변3

모든 파일과 디렉터리(포함)를 삭제합니다.숨겨진) 디렉토리에서 다음을 시도해 볼 수 있습니다.

  • ls -Ab모든 파일/디렉토리를 일치시키는 데 사용됩니다.

    cd dir_name && rm -rf `ls -Ab`
    
  • find모든 파일/디렉토리를 일치시키는 데 사용됩니다.

    find dir_name -mindepth 1 -delete
    

    또는 find지원하지 않는 경우 -delete:

    find dir_name -mindepth 1 -exec rm -rf {}
    
  • 폴더 삭제하고 다시 만들어보세요

    rm -rf dir_name && mkdir dir_name
    
  • 배쉬에서는

    shopt -s dotglob  
    rm -rf dir_name/*
    

답변4

이 버전을 사용해 보세요:

 rm -r test/*

관련 정보