728x90
반응형
때론 운영하다가 중복파일을 추출하는 스크립트입니다.
참고만 하고, 필요한 부분은 보완하도록 하자!
예제1
#!/bin/bash
# 중복된 파일을 확인하는 스크립트
# 검사할 디렉토리를 지정합니다.
directory_to_check="/root/mnt"
# 중복된 파일을 찾을 함수를 정의합니다.
find_duplicate_files() {
# 모든 파일을 검색하고 파일 크기와 함께 정렬합니다.
find "$directory_to_check" -type f -exec stat -c "%s %n" {} \; | \
awk '{if (a[$1]) print $1, $2; else a[$1]=$2}' | \
sort -n > duplicate_files.txt
# 중복된 파일 목록을 출력합니다.
echo "중복된 파일 목록:"
cat duplicate_files.txt
# 중복된 파일을 삭제하려면 아래 주석을 해제하세요.
# echo "중복된 파일을 삭제합니다."
# while read -r line; do
# file_to_delete=$(echo "$line" | awk '{print $2}')
# rm "$file_to_delete"
# echo "삭제됨: $file_to_delete"
# done < duplicate_files.txt
# 중복된 파일 목록 파일을 삭제합니다.
#rm duplicate_files.txt
}
# 중복된 파일을 찾는 함수를 호출합니다.
find_duplicate_files
# 스크립트를 종료합니다.
exit 0
예제2
#!/bin/bash
# 중복된 파일을 찾아 출력하는 스크립트
# 사용법을 출력하는 도움말 함수
usage() {
echo "사용법: $0 <디렉토리>"
echo "디렉토리 내에서 중복된 파일을 찾아 출력합니다."
exit 1
}
# 명령행 인수의 개수를 확인
if [ $# -ne 1 ]; then
usage
fi
# 인수로 받은 디렉토리가 존재하는지 확인
directory="$1"
if [ ! -d "$directory" ]; then
echo "오류: 디렉토리 '$directory'를 찾을 수 없습니다."
exit 1
fi
# 중복된 파일을 찾아 출력
# md5sum을 사용하여 파일의 해시를 계산하고 중복을 찾음
find "$directory" -type f -exec md5sum {} + | sort | uniq -d -w 32 | awk '{print $2}' | while read -r file; do
echo "중복된 파일: $file"
done
728x90
반응형
LIST
'Linux' 카테고리의 다른 글
[Linux] sysctl 명령어의 다양한 예제 (1) | 2023.09.29 |
---|---|
[Linux] lsof 명령어와 다양한 예제 (1) | 2023.09.28 |
[Linux] 원본폴더와 백업폴더의 파일 비교 후 다른 점 결과 출력 (1) | 2023.09.21 |
[Linux] diff 명령어의 다양한 옵션과 예시 (1) | 2023.09.20 |
[Linux] curl 로 Restful API 호출 및 JSON 데이터 전송 (1) | 2023.09.19 |