53 lines
1.2 KiB
Bash
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
|