
현재 디렉터리 아래에 여러 개의 하위 디렉터리가 있고 그 중 하나는 A라고 가정합니다.
Bash를 사용하여 A를 제외한 모든 하위 디렉터리를 삭제하는 방법은 무엇입니까?
답변1
Bash는 글로빙을 확장했습니다(첫 번째 테스트 후 에코 제거).
shopt -s extglob
echo rm -rf !(A)
답변2
find -maxdepth 1 -type d -not -name A -not -name "." -exec rm -ir {} \;
답변3
는 어때:
mv A /tmp/
rm * -rf
mv /tmp/A .
이렇게 하면 다른 명령의 오타로 인한 "무서움"을 피할 수 있습니다.
주의해주세요위의 rm * -rf 명령 실행 시 루트(/) 폴더에 있지 않도록 합니다.
답변4
나는 보통 먼저 올바른 결과를 얻는 ls 명령을 실행하여 이 작업을 수행합니다. 나는 유닉스 컴퓨터에 있지 않지만 다음과 같습니다.
ls -lda "[^A]"
제대로 이해했다면 명령으로 파이프하세요.
ls -lda "[^A]" | xargs rm -rf
정규 표현식이 잘못된 경우 위를 자유롭게 편집하세요.