디렉터리의 모든 파일과 하위 디렉터리를 삭제하려고 합니다. 예전에는 모든 파일을 삭제 했는데 rm -r
, 모든 파일을 삭제하고 싶어요그리고최상위 디렉터리 자체를 제외한 하위 디렉터리.
예를 들어, 파일 과 하위 디렉터리를 images
포함하는 .header.png
footer.png
header.png
이제 및 하위 디렉터리를 삭제하고 싶지만 footer.png
삭제하지는 않습니다 images
.
Linux에서 이 작업을 어떻게 수행할 수 있나요?
답변1
최상위 디렉토리의 이름이 지정되어 있으면 images
를 실행하십시오 rm -r images/*
. NET Framework에서 쉘 glob *
연산자를 사용합니다 .rm -r
images
답변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/*