Commit 1185eb47 authored by platyhouse's avatar platyhouse

# 파일 검색 도구 강제 삭제 기능 추가

## 파일 삭제 기능 개선

### 강제 삭제 옵션 추가
- **ptyFileFind**: --delete-force 옵션 추가
  - 기존 --delete는 확인 후 삭제
  - --delete-force는 확인 없이 즉시 삭제
  - DELETE_FORCE 변수 추가 및 초기화

### 삭제 확인 로직 개선
- **ptyFileFind**: 삭제 확인 프로세스 리팩토링
  - PROCEED_DELETE 변수로 삭제 진행 여부 제어
  - 강제 삭제 모드 분기 처리 추가
  - 조건문 구조 개선 ([[ ]] → [ ])

### 도움말 개선
- **ptyFileFind**: 사용법 및 예제 업데이트
  - --delete-force 옵션 설명 추가
  - 두 삭제 옵션 차이점 명시
  - 예제에 강제 삭제 사용 사례 추가
parent a8848b29
...@@ -35,6 +35,7 @@ show_usage() { ...@@ -35,6 +35,7 @@ show_usage() {
echo " -maxdepth N 검색 깊이 제한 (1: 현재 디렉토리만)" echo " -maxdepth N 검색 깊이 제한 (1: 현재 디렉토리만)"
echo " -count 개수만 표시" echo " -count 개수만 표시"
echo " --delete 검색된 파일/디렉토리 삭제 (확인 후 실행)" echo " --delete 검색된 파일/디렉토리 삭제 (확인 후 실행)"
echo " --delete-force 검색된 파일/디렉토리 강제 삭제 (확인 없이 즉시 삭제)"
echo "" echo ""
echo "예제:" echo "예제:"
echo " $0 '*.log' -d 10 # 현재 디렉토리의 .log 파일 중 10일 이상 지난 파일" echo " $0 '*.log' -d 10 # 현재 디렉토리의 .log 파일 중 10일 이상 지난 파일"
...@@ -49,7 +50,8 @@ show_usage() { ...@@ -49,7 +50,8 @@ show_usage() {
echo " $0 '*.sh' -perm 777 # 현재 디렉토리의 .sh 파일 중 777 권한" echo " $0 '*.sh' -perm 777 # 현재 디렉토리의 .sh 파일 중 777 권한"
echo " $0 '*.log' -r -d 30 -s # 하위까지 .log 파일 중 30일 이상, 크기 표시" echo " $0 '*.log' -r -d 30 -s # 하위까지 .log 파일 중 30일 이상, 크기 표시"
echo " $0 './*' -maxdepth 2 -zerofiles # 최대 2단계 깊이까지 0바이트 파일" echo " $0 './*' -maxdepth 2 -zerofiles # 최대 2단계 깊이까지 0바이트 파일"
echo " $0 '*.log' -d 30 --delete # 30일 이상 지난 .log 파일 삭제" echo " $0 '*.log' -d 30 --delete # 30일 이상 지난 .log 파일 삭제 (확인 후)"
echo " $0 '*.log' -d 30 --delete-force # 30일 이상 지난 .log 파일 강제 삭제"
exit 1 exit 1
} }
...@@ -100,6 +102,7 @@ FILE_PERM="" ...@@ -100,6 +102,7 @@ FILE_PERM=""
MAX_DEPTH="1" MAX_DEPTH="1"
RECURSIVE=false RECURSIVE=false
DELETE_MODE=false DELETE_MODE=false
DELETE_FORCE=false
# 옵션 파싱 # 옵션 파싱
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
...@@ -168,6 +171,11 @@ while [[ $# -gt 0 ]]; do ...@@ -168,6 +171,11 @@ while [[ $# -gt 0 ]]; do
DELETE_MODE=true DELETE_MODE=true
shift shift
;; ;;
--delete-force)
DELETE_MODE=true
DELETE_FORCE=true
shift
;;
-help|--help) -help|--help)
show_usage show_usage
;; ;;
...@@ -337,14 +345,27 @@ if [ "$DELETE_MODE" = true ]; then ...@@ -337,14 +345,27 @@ if [ "$DELETE_MODE" = true ]; then
exit 0 exit 0
fi fi
echo "" # 강제 삭제가 아닌 경우 확인 받기
echo "============================================" PROCEED_DELETE=false
echo "경고: 위의 ${COUNT}개 항목을 삭제하시겠습니까?" if [ "$DELETE_FORCE" = true ]; then
echo "============================================" PROCEED_DELETE=true
read -p "삭제하시겠습니까? (y/N): " -n 1 -r echo ""
echo "" echo "============================================"
echo "강제 삭제 모드: ${COUNT}개 항목을 삭제합니다."
echo "============================================"
else
echo ""
echo "============================================"
echo "경고: 위의 ${COUNT}개 항목을 삭제하시겠습니까?"
echo "============================================"
read -p "삭제하시겠습니까? (y/N): " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
PROCEED_DELETE=true
fi
fi
if [[ $REPLY =~ ^[Yy]$ ]]; then if [ "$PROCEED_DELETE" = true ]; then
echo "" echo ""
echo "삭제 중..." echo "삭제 중..."
DELETED_COUNT=0 DELETED_COUNT=0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment