HxHippy

Find Duplicate Files Script

Identify duplicate files by content hash (MD5/SHA256). Options to delete, move, or create hard links.

Last updated: 2024-12-15

Overview

Find duplicate files using cryptographic hashes. Supports multiple actions: report, delete, move to folder, or create hard links to save space.

The Script

#!/bin/bash
# Find Duplicate Files
# Usage: ./find-dupes.sh [options] <directory>

set -euo pipefail

HASH_CMD="md5sum"
ACTION="report"
MIN_SIZE=1

echo "Scanning files..."

# Find files and compute hashes
find "$SEARCH_DIR" -type f -size +\${MIN_SIZE}c -print0 2>/dev/null | \\
while IFS= read -r -d '' file; do
    $HASH_CMD "$file" 2>/dev/null
done | sort > "$HASH_FILE"

echo "Done!"

Usage Examples

# Report duplicates
./find-dupes.sh ~/Downloads

# Use SHA256 for more accuracy
./find-dupes.sh -a sha256 ~/Photos

# Only check files larger than 1MB
./find-dupes.sh -s 1000000 ~/Videos

# Delete duplicates (keep first found)
./find-dupes.sh -d ~/Documents

# Move duplicates to separate folder
./find-dupes.sh -m ~/Duplicates ~/Downloads

# Replace duplicates with hard links (saves space)
./find-dupes.sh -l ~/Photos
intermediate File Operations Updated 2024-12-15
  • duplicates
  • hash
  • md5
  • sha256
  • disk space
  • cleanup
  • dedup