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