gelegentlich bin ich ein bißchen paranoid was die Integrität meiner Daten betrifft. Diesmal trifft es meine kleine Musiksammlung, die auf meinem PC am meisten Speicherplatz einnimmt.
Nachdem flac-Dateien eine Prüfsumme über die dekodierten Audiodaten enthält und diese nach dem Dekodieren mit flac automatisch geprüft wird, liegt es also nahe das ganze von einem Skript rekursiv für ein ganzes Verzeichnis erledigen zu lassen
Code: Alles auswählen
#!/bin/bash
IFS=$'\n'
MAXJOBS=8
COUNT=0
DIRECTORY="${1-.}"
test -d ${DIRECTORY} || exit 3
for FILE in $(find . -name '*.flac'); do
flac -t ${FILE} &> /dev/null || echo ERROR: ${FILE} &
test $(jobs -rp | wc -l) -lt ${MAXJOBS} || wait -n
COUNT=$(expr ${COUNT} + 1)
done
wait
echo checked ${COUNT} files.
Die Ausgabe sollte eine Liste der fehlerhaften Dateien gefolgt von der Anzahl der insgesamt überprüften Dateien sein.
Auf meinem Computer läuft das (für mich überraschenderweise ☺) recht gut und findet in meinen 115 GB flac-Dateien innerhalb von ~5 Minuten keinerlei Fehler (ich habe mein Skript flactest genannt)
Code: Alles auswählen
$ du -ch .
[…]
115G .
115G insgesamt
$ time flactest
checked 5676 files.
real 5m34.887s
user 42m9.973s
sys 0m42.223s