У меня есть 2 каталога.livedir
содержит 2000 файлов fmx, а testdir
содержит 6000 фмб с прикрепленными временными метками.Я скомпилировал все fmb в testdir
в fmx, чтобы сопоставить их с fmx в livedir
.
. Я создал следующий скрипт для получения MD5SUM всех файлов в livedir
и поиска, если они существуют в testdir
:
testdir='/home/oracle/ideatest/test/'
livedir='/home/oracle/ideatest/live/'
cd /home/oracle/ideatest/live/
for f in *; do
livefile=$(md5sum "$f" | cut -d" " -f1)
sourcefile=$(md5sum "$testdir""$f" | cut -d" " -f1)
if [[ -f $f ]] && [ $livefile == $sourcefile ]; then
echo "$f" "OK-----------------------------"
echo "$sourcefilename"
cp /home/oracle/bankplus/ideatest/test/$f /home/oracle/bankplus/ideatest/live2/$f
#el moshkla f 2sm el file 3ayzo mn 3'er hash
else
echo "$f" "MODIFIED"
fi
done
Сценарий работает только в том случае, если в двух каталогах существует файл с одинаковым именем.Это потому, что я зацикливаюсь, используя одно и то же имя $f
:
sourcefile=$(md5sum "$testdir""$f" | cut -d" " -f1)
В результате cp
копирует только один файл, хотя у меня есть несколько файлов с одинаковым значением хеш-функции в testdir
.