Я использую команду 7z в скрипте bash для создания архива 7z для целей резервного копирования. Мой скрипт также проверяет, существует ли этот новый архив 7z в моей резервной папке, и если да, то я иду и запускаю md5sum, чтобы узнать, отличается ли контент. Поэтому, если файл архива еще не завершен или md5sum отличается от предыдущего, я копирую его в свою резервную папку. Поэтому я попробовал простой пример для тестирования скрипта, но проблема в том, что иногда я получаю разные md5sum для той же самой папки, которую я сжимаю. Почему это так? Есть ли другой надежный способ проверки того, отличается ли содержимое файла? Команды просты:Почему 7z создает разные файлы?
SourceFolder="/home/user/Documents/"
for file in $SourceFolder*
do
localfile=${file##*/}
7z a -t7z "$SourceFolder${localfile}.7z" "$file"
md5value=`md5sum "$SourceFolder${localfile}.7z"|cut -d ' ' -f 1`
... copyinf файлы идет отсюда на ...
Является ли это эмулятором Linux, работающим под окнами? Если это так, окна, вероятно, модифицируют содержимое «Документов» каким-либо образом, чтобы заставить md5sum вернуть другую контрольную сумму. –
Пожалуйста, используйте разметку 'fullcode', а не' \ '' –
Возможно, 7z включает в себя отметку времени (штамп времени создания?) В архиве. Сравните их с 'cmp -l 1.7z 2.7z' и посмотрите, сколько байтов отличается. – glglgl