md5 eksperiment

Misko_2083

Member
Joined
Mar 15, 2015
Messages
306
Reaction score
18
Ok, evo mog pokušaja da napišem bash skriptu za md5sum koji u zavisnosti da li je selektovan jedan fajl ili više fajlova radi drugačije. U slučaju da se proverava md5 za jedan fajl script izbaci progress bar i na kraju prikaže rezultat u info dijalogu.
Ako se proverava za više fajlova pravi se lista u checklist.chk u istom folderu a zatim se otvara pomoću exo-open.
Postoje jednostavnija rešenja bez privremenih fajlova, ali ovako indikator umesto da šeta levo-desno pokazuje koji deo posla je odrađen. 🙂
Komanda za Thunar
> temp.tmp; for file in %N; do echo $file >> temp.tmp; done; /putanja/do/md5checksum.sh temp.tmp
/putanja/do…/ taj deo treba izmeniti po želji, a skriptu sačuvati (ili u home folderu ili u /usr/local/bin pošto tamo ne upisuje menadžer paketa) i chmod +x
Skripta

Code:
#!/bin/bash

file="$@"

count="$(wc -l “$file” | cut -d’ ’ -f1)"

if [[ “$count” = “0” ]]; then
zenity --error --text=“Nothing to calculate!”
elif [[ “$count” = “1” ]]; then
hash pv 2>/dev/null
if [ $? != 0 ]; then
echo “pv is not installed”
echo “apt-get install pv”
zenity --warning --text=“pv is not installed\napt-get install pv”
rm -f $file
exit
fi
[CODE]sum_temp=$(mktemp /tmp/XXXXXXX)
( pv -n “$(cat ${file})” | md5sum 2>&1 | tee >(cut -d ’ ’ -f1 > $sum_temp) 2>&1 ) 2>&1
| awk ‘{if ($1 <=99) print $0; else print 99; fflush(stdout)}’
| zenity --progress --title=“MD5sum” --text=“Calculating MD5 for:\n$(cat ${file})” --percentage=0 --auto-close

if [ $? != 0 ]; then
rm -f $sum_temp
else
zenity --info --text="$(cat ${file})\n$(cat $sum_temp)"
rm -f $sum_temp
fi

elif [[ $count -gt 1 ]]; then
checklist.chk
i=0
TOTAL="$count"
while read -r line || [[ -n “$line” ]]; do
md5sum “${line}” >> checklist.chk 2>&1
((++i))
PERCENT=$(($i*100/${TOTAL}))
echo “#md5sum $i/$TOTAL: $line”
echo “$PERCENT”
done < “$file” | zenity --progress --title=“MD5” --auto-close
exo-open ‘checklist.chk’
fi
rm -f $file[/CODE]
Dodao sam komentare da bih objasnio kako skript radi ali je nestala struja pre nego što sam sačuvao fajl. :cry: Sad’ me mrzi da ih ponovo radim. 😃
 
Last edited:
Top