Files
caliverse_doc/04. 서버설정/Shell Script/delete_file_random.sh
2025-05-01 07:27:54 +09:00

53 lines
1.2 KiB
Bash

#!/bin/bash
# 사용법 출력 함수
print_usage() {
echo "사용법: $0 <삭제할_파일_개수>"
echo "예: $0 3"
exit 1
}
# 명령행 인수 확인
if [ "$#" -ne 1 ]; then
print_usage
fi
# 디렉토리 경로 입력
dir="/home/saanghaa/aws/s3sync"
count=$1
# 디렉토리 존재 확인
if [ ! -d "$dir" ]; then
echo "디렉토리가 존재하지 않습니다."
exit 1
fi
# 디렉토리로 이동
cd $dir
# 디렉토리 내 파일/디렉토리 목록을 배열에 저장
files=(*)
# 확인할 파일 수가 실제 파일 수보다 많은지 확인
if [ "$count" -gt "${#files[@]}" ]; then
echo "경고: 삭제할 파일 수가 실제 파일 수보다 많습니다."
echo "현재 디렉토리의 파일 수: ${#files[@]}"
print_usage
fi
# 삭제할 파일 수 만큼 반복
for (( i=0; i<$count; i++ )); do
# 무작위 인덱스 생성
index=$((RANDOM % ${#files[@]}))
# 파일 이름 및 용량 출력
echo "파일이 삭제되었습니다: ${files[$index]}, 용량: $(du -sh ${files[$index]} | cut -f1)"
# 파일/디렉토리 삭제
rm -rf ${files[$index]}
# 파일/디렉토리 목록에서 삭제
unset 'files[$index]'
files=("${files[@]}")
done