
광산을 정리하기 위해 간단한 스크립트를 설정하려고 합니다 working folder
. 그 working folder
구조는 다음과 같습니다.
Project 1
Project 1 [edited]
Project 2
Project 2 [edited]
Project 3
Project 3 [edited]
...
모든 프로젝트 폴더에는 파일만 포함됩니다. 목표는 working folder
해당 폴더 내의 모든 폴더를 삭제하는 것입니다아니요[edited]
명목상 있습니다.
답변1
GNU find를 사용하면 다음과 같습니다.
find . -maxdepth 1 -mindepth 1 ! -name "*edit*"
이름에 "edit"가 없는 현재 디렉터리의 파일과 일치해야 하며 이름을 인쇄해야 합니다. 물론 -type d -iname "*project*"
이름에 "project"가 포함된 디렉터리만 일치시키도록 추가할 수도 있습니다. 출력이 올바르면 추가 -delete
하여 find
제거할 수 있습니다.
실제로 Bash를 사용하면 shopt -s extglob
다음을 사용할 수도 있습니다.
echo rm -r !(*edit*)/
후행 슬래시는 디렉토리에만 일치하게 하고 echo
명령을 실행하지 않고 인쇄만 합니다.