linux_clean_raw_dir.sh

#!/bin/bash

# DESC: Skript prüft, ob JPG im Hauptordner und ARW im Ordner RAW zusammenpassen und löscht bei Bedarf.
# Standard: Dry-Run ist aktiv
do_delete=false

# Optionen verarbeiten
while getopts "r" opt; do
  case $opt in
    r) do_delete=true ;;
    *) echo "Ungültige Option"; exit 1 ;;
  esac
done

# Ins Unterverzeichnis wechseln
cd RAW || { echo "Verzeichnis RAW nicht gefunden"; exit 1; }

# Zähler für Übersicht
count=0

for raw_file in *.ARW; do
    # Falls keine ARW-Dateien vorhanden sind
    [ -e "$raw_file" ] || continue
    
    base_name="${raw_file%.*}"
    
    # Prüfen, ob das entsprechende JPG im übergeordneten Verzeichnis fehlt
    if [ ! -f "../$base_name.JPG" ] && [ ! -f "../$base_name.jpg" ]; then
        if [ "$do_delete" = true ]; then
            echo "Lösche: $raw_file"
            rm "$raw_file"
        else
            echo "[Dry-Run] Würde löschen: $raw_file"
        fi
        ((count++))
    fi
done

if [ "$count" -eq 0 ]; then
    echo "Alles in Ordnung: Keine verwaisten ARW-Dateien gefunden."
else
    echo "Vorgang abgeschlossen. Anzahl betroffener Dateien: $count"
fi
    
Zurück zur Übersicht