У меня есть два архива с именами 10.88.10 и 10.88.12. Один или несколько файлов в 10.88.12 были изменены. В любом случае я могу узнать, какой файл был изменен. Zip-файл содержит каталог, подкаталог и zip-файлы внутри
Код, который я пробовал (не думайте, что я на правильном пути)
m1= md5sum 10.88.10.zip | cut -d' ' -f1
m2= md5sum 10.88.12.zip | cut -d' ' -f1
if [ "m1" != "m2" ]; then
echo file are not same
cd "/c/Users/name/Downloads/10.88.10/"
while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]
do
cd "/c/Users/name/Downloads/10.88.10/"
find . -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;
done
cd "/c/Users/name/Downloads/10.88.12/"
while [ "`find . -type f -name '*.zip' | wc -l`" -gt 0 ]
do
find . -type f -name "*.zip" -exec unzip -- '{}' \; -exec rm -- '{}' \;
done
cd "/c/Users/name/Downloads/"
find 10.88.10/* -type f -print0 | xargs -0 sha1sum |cut -d' ' -f1 > file1.txt
find 10.88.12/* -type f -print0 | xargs -0 sha1sum | cut -d' ' -f1 > file2.txt
diff file1.txt file2.txt
else
echo false
fi
** Попытка ha sh найти измененный файл путем сравнения и получения уникального, но, к сожалению, получить только ha sh и не может придумать способ получить имена этих файлов ha sh ** **
запуск ha sh cmd: find 10.88.10/* -type f -print0 | xargs -0 sha1sum
вывод
c3f2b563b3cb091e2adsss321221a3d *10.88.12/name.xml
Deference / Модифицированный файл в ha sh
1c1
< 3c2a991d1231c3eae391fadsdadda19e8f7b85df8caf2d
---
> c3f2b56qwdq2112e375b40fbfd5e60f526da3d1874c1874
< fbdc82dasdaa30538e5adadadada2d9456ff86953fbeeb1
---
> f962e8eqeqeqqe3b65d3ed43559adc879f5600c738e1e1c
ТРЕБУЕМЫЙ ВЫХОД
< 10.88.10/FOLDER/FILE1.XML
---
> 10.88.12/FOLDER1/FILE1.XML
< 10.88.10/FOLDER/FILE2.TXT
---
> 10.88.12/FOLDER/FILE2.TXT
ЕСЛИ у кого-нибудь есть java решение или bash скрипт, поделитесь им. будет оценена