Tekrarlanan Dosya Bulucu

Dizinde tekrarlanan dosyaları bulan ve raporlayan script. MD5 hash kullanarak aynı içeriğe sahip dosyaları tespit eder.

Yayınlanma: 02.05.2024

Detaylı Bilgi

Bu script, belirli bir dizinde tekrarlanan dosyaları bulur. MD5 hash kullanarak dosyaların içeriğini karşılaştırır ve aynı içeriğe sahip dosyaları tespit eder.

Script Ne İşe Yarar?

Bu script, tekrarlanan dosyaları tespit eder:

  • Dizindeki tüm dosyaları tarar
  • Her dosyanın MD5 hash'ini hesaplar
  • Aynı hash'e sahip dosyaları bulur
  • Detaylı rapor oluşturur

Neden Kullanmalısınız?

Tekrarlanan dosya bulma, disk alanı tasarrufu sağlar:

  • Disk Tasarrufu: Gereksiz kopyaları bulun ve silin
  • Organizasyon: Dosya yapınızı temizleyin
  • Veri Bütünlüğü: Aynı dosyaların farklı kopyalarını tespit edin

Nasıl Kullanılır?

Adım Adım Kullanım Kılavuzu

1. Script Dosyasını Oluşturun

nano find_duplicates.sh

2. Çalıştırılabilir Yapın

chmod +x find_duplicates.sh

3. Scripti Çalıştırın

./find_duplicates.sh /path/to/directory

4. Raporu İnceleyin

cat duplicates_*.txt

Gereksinimler

Gereksinimler

  • md5sum: MD5 hash hesaplama aracı
  • Dosya Erişimi: Dizine okuma izni

Kullanım Senaryoları

Kullanım Senaryoları

1. Disk Temizliği

Gereksiz kopyaları bulup disk alanı kazanın.

2. Dosya Organizasyonu

Dosya yapınızı temizleyin ve düzenleyin.

Örnekler

Kullanım Örnekleri

Örnek 1: Home Dizini Tarama

./find_duplicates.sh /home/user

Kod

#!/bin/bash

# Duplicate File Finder

if [ -z "$1" ]; then
    echo "Usage: $0 <directory>"
    exit 1
fi

DIR="$1"
REPORT="duplicates_$(date +%Y%m%d_%H%M%S).txt"

if [ ! -d "$DIR" ]; then
    echo "Error: Directory not found: $DIR"
    exit 1
fi

echo "Scanning for duplicate files..."
echo "This may take a while for large directories..."
echo ""

declare -A file_hashes
duplicates_found=0

while IFS= read -r -d "" file; do
    if [ -f "$file" ]; then
        hash=$(md5sum "$file" | cut -d" " -f1)
        if [ -n "${file_hashes[$hash]}" ]; then
            echo "DUPLICATE FOUND:" >> "$REPORT"
            echo "  Original: ${file_hashes[$hash]}" >> "$REPORT"
            echo "  Duplicate: $file" >> "$REPORT"
            echo "  Size: $(du -h "$file" | cut -f1)" >> "$REPORT"
            echo "" >> "$REPORT"
            ((duplicates_found++))
        else
            file_hashes[$hash]="$file"
        fi
    fi
done < <(find "$DIR" -type f -print0)

if [ $duplicates_found -eq 0 ]; then
    echo "No duplicates found!"
else
    echo "Found $duplicates_found duplicate(s)"
    echo "Report saved to: $REPORT"
fi

Kullanım

chmod +x find_duplicates.sh
./find_duplicates.sh /path/to/directory

Sorun Giderme

Sorun Giderme

Problem: "md5sum: command not found"

Çözüm: md5sum genellikle varsayılan kurulu. Eksikse:

sudo apt-get install coreutils

Etiketler

duplicate tekrar dosya bulma md5