OS/Solaris

대량 파일 확인 후 삭제

Lawmin 2025. 6. 23. 16:44

# vi del_files.sh

#!/bin/ksh

input_file="input.txt"
output_file="result.txt"
delete_flag=0

while getopts ":d" opt; do
  case $opt in
    d) delete_flag=1 ;;
    *) echo "Usage: $0 [-d]"; exit 1 ;;
  esac
done

> "$output_file"

while IFS= read -r filepath
do
  if [ -e "$filepath" ]; then
    if [ $delete_flag -eq 1 ]; then
      if rm "$filepath" 2>/dev/null; then
	echo "$filepath,D" >> "$output_file"
      else
	echo "$filepath,F" >> "$output_file"
      fi
    else
      echo "$filepath,E" >> "$output_file"
    fi
  else
    echo "$filepath,X" >> "$output_file"
  fi
done < "$input_file"

 

# chmod 700 del_files.sh

 

1. input.txt 에 삭제할 full path 목록 저장 후, del_files.sh 실행하면, result.csv 에 결과가 생성됩니다.

- 존재할 경우 E, 없을 경우, X

2. del_files.sh -d  실행하여 최종 삭제 처리하면 result.csv 에 결과가 생성됩니다.

- 실패한 경우 F, 삭제 성공은 D