상위 폴더를 삭제하지 않고 하위 폴더 삭제

상위 폴더를 삭제하지 않고 하위 폴더 삭제

이 유형의 디렉토리 구조의 경우:

/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

나는 findwith 를 사용하는 것을 선호합니다 -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 ./**

이는 로컬 경로에서 모든 하위 폴더를 제거하는 전역 모드입니다.

./로컬 폴더... 및 **아래의 모든 폴더를 참조합니다..

관련 정보