Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- sumfile_source="/tmp/md5sum_remote.txt"
- sumfile_current="/tmp/md5sum_current.txt"
- dir_current="/tmp/a_current"
- dir_new="/tmp/a_new"
- cat $sumfile_source | while read line; do
- ### md5
- sum=${line:0:32}
- filename=${line:34}
- filename_current=""
- # ### sha1
- # sum=${line:0:40}
- # filename=${line:42}
- # ### sha256
- # sum=${line:0:64}
- # filename=${line:66}
- if [ ! -e "${dir_new}/${filename}" ]; then
- # check in the "current" dir
- a=`cat $sumfile_current | grep -E "^${sum} " | cut -d ' ' -f 3- | head -n 1`
- if [ "$a" != "" ] &&[ -e "${dir_current}/${a}" ]; then
- filename_current="${dir_current}/${a}"
- move=1
- else
- # check if a file with this sum was already moved
- a=`cat $sumfile_source | grep -E "^${sum} " | cut -d ' ' -f 3- | head -n 1`
- if [ "$a" != "" ] && [ -e "${dir_new}/${a}" ]; then
- filename_current="${dir_new}/${a}"
- move=0
- fi
- fi
- if [ "$filename_current" == "" ]; then
- echo "WARNING: \"$sum $filename\": missing from \"current\" and \"new\" location, skipping."
- continue
- fi
- # echo "${filename_current} -> ${dir_new}/${filename}"
- dir=`dirname "${dir_new}/${filename}"`
- mkdir -p "${dir}"
- if [ $move == 1 ]; then
- mv -v "${filename_current}" "${dir_new}/${filename}"
- else
- cp -xarv "${filename_current}" "${dir_new}/${filename}"
- fi
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement