쉘스크립트 문의

brown의 이미지

20101201
20101202
.
.
.
20101221

이처럼 하루에 하나씩 날짜 이름으로 생성되는 디렉토리가 있습니다.
이걸 특정날짜 기준으로 그 이전 디렉토리를 삭제하려고 합니다.
생각나는 대로 하면,

디렉토리 이름을 리스트로 저장 후
ls -l | sort -n | wc -l로 디렉토리 갯수 뽑아서
디렉토리 갯수만큼 루프 돌리면서 기준이 되는 날짜와 비교후
이전데이터면 삭제 아니면 계속 돌리는 방식으로 구현하려고 합니다.

간단해 보이는데 구현하려니까 좀 복잡하네요;
이런형태의 처리를 해주는 함수가 있을까요?

auditory의 이미지

#!/bin/bash
CUT=20101205
mkdir -p trash
for i in 20??????; do
  if [ $i -lt $CUT ]; then
    mv $i trash
  fi
done
#rm -rf trash
Prentice의 이미지

find /path/ -maxdepth 1 -type d ! -newer /path/20101221/ -exec echo rm -r {} \;

시험해보지는 않았습니다.