이 유형의 디렉토리 구조의 경우:
/config/filegroups/filegroupA/files/fileA1.txt
/config/filegroups/filegroupA/files/fileA2.txt
/config/filegroups/filegroupB/files/fileB1.txt
/config/filegroups/filegroupB/files/fileB2.txt
...
rm -rf /config/filesgroups
상위 폴더와 모든 하위 폴더를 삭제하는 데 사용할 수 있다는 것을 알고 있습니다 .
/filegroupA
하지만 삭제 하는 /filegroupB
것이 아니라 등을 삭제 하고 싶습니다 ./config/filegroups
답변1
rm -rf /config/filegroups/*
파일을 변경하지 않고 디렉터리(및 디렉터리에 대한 심볼릭 링크)만 삭제하려는 경우 /config/filegroups
뒤에 슬래시를 사용할 수 있습니다.
rm -rf /config/filegroups/*/
이름이 a로 시작하는 디렉토리를 삭제하려면 .
상당히 새로운 bash가 있다고 가정하고 dotglob 쉘 옵션을 사용해야 합니다:
shopt -s dotglob
rm -rf /config/filegroups/*/
shopt -u dotglob
답변2
나는 find
with 를 사용하는 것을 선호합니다 -exec
. 이렇게 하면 다음과 같이 호출할 수 있습니다.
find /config/filegroups/ -maxdepth 1 -mindepth 1 -type d -exec rm -rf {} \;
답변3
/config/filegroups
이렇게 하면 "숨겨진" 파일과 디렉터리(이름이 로 시작하는 )가 포함된 .
모든 파일과 디렉터리가 삭제됩니다 .
find /config/filegroups -mindepth 1 -maxdepth 1 | xargs rm -rf
파일 또는 디렉터리 이름에 공백이 포함된 경우 다음을 수행해야 합니다.
find /config/filegroups -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf
보너스: 먼저 다음과 같이 삭제하려는 항목을 확인할 수 있습니다.
find /config/filegroups -mindepth 1 -maxdepth 1
특정 파일이나 디렉토리를 유지하려면 다음을 수행하십시오.
find /config/filegroups -mindepth 1 -maxdepth 1 -not -name "keep"
답변4
이미 폴더에 있는 경우 다음을 입력하세요.rm -rf ./**
그래서:
cd /config/filesgroups
rm -rf ./**
이는 로컬 경로에서 모든 하위 폴더를 제거하는 전역 모드입니다.
./
로컬 폴더... 및 **
아래의 모든 폴더를 참조합니다..