#!/bin/bash
if [[ "$1" = "--help" ]]; then
  echo "$(basename $0) sha256sum-dir [root-directory] ... uses rootNN.sha256s file with largest NN to compare the  sha256sums of all files in root-directory" >&2
  echo "  uses /mnt if root-directory is not given" >&2;
  echo >&2;

else
  let n=0; dir="$(dirname "${1:-.}")"; cmpfile="$dir/root$n.sha256s";  while [ -e "$cmpfile" ]; do let n=n+1; cmpfile="$dir/root$n.sha256s"; done
  let n=n-1; cmpfile="$dir/root$n.sha256s"; 
  outfile="test.sha256s";
  rootdir="${2:-/mnt}"; rootdir="${rootdir%/}";
  #find /mnt -type f | egrep -v "^/mnt/(sys|proc|selinux|dev|media|run)/" | sed 's#\\#\\\\#g' | while read file; do sha256sum "$file"; done | sed 's# /mnt/# /#' >$outfile
  find "$rootdir" -type f -print0 | tr '\n []*\000' '?????\n' | egrep -v "^$rootdir/(sys|proc|selinux|dev|media|run)/" | sed 's#\\#\\\\#g' | while read file; do sha256sum $file; done | sed "s# $rootdir/# /#" >$outfile
  echo $outfile ready
  sort -t " " -k 2 <$outfile >$outfile.sorted
  sort -t " " -k 2 <$cmpfile >$cmpfile.sorted
  ls -l *.sorted

fi
