동일한 시작 번호를 가진 다른 폴더가 있는 경우 폴더 제거

동일한 시작 번호를 가진 다른 폴더가 있는 경우 폴더 제거

실수로 생성된 폴더가 있습니다. 이 폴더를 제거하고 싶습니다.

¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty

636.empty이 상황에서는 비어 있지 않은 폴더를 제거하고 남겨두고 싶습니다 .

sister터미널 명령을 실행한 후 폴더를 제거하려는 모든 폴더를 원합니다 .

¬ 636
¬ 637
¬ 638.empty
¬ 639

제거된 폴더는 다음과 같습니다.

¬ 636.empty
¬ 639.empty

25,000일부 폴더가 있습니다 . 아마도 1000 이 중 empty폴더 와 중복되었을 수 있습니다.

답변1

이름이 지정된 모든 디렉터리를 반복 *empty하고 동일한 디렉터리가 없는지 확인 .empty하고 true인 경우 삭제합니다.

for d in *.empty; do
    [ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done

이름에도 불구하고 디렉토리가 비어 있지 않으면 다음 rmdir으로 바꾸십시오 ;-)rm -rf


대안 find:

find -maxdepth 1 -type d -name '*.empty' \
  -exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
  -delete

디렉토리가 비어 있지 않으면 -delete다음으로 바꾸십시오 .-exec rm -rf {} \;

관련 정보