使用 bash 进行动态 zip 文件校验和检查
Dynamic zip file checksum checking using bash
我有多个 zip 文件,如果它们在传输时没有受到损害,我想检查它们,如果校验和值匹配,那么我需要解压缩文件夹。
我可以对一个 zip 文件执行此操作,但我需要动态检查,因此我不必每次都替换 zip 文件名来 运行 检查。
这是我到目前为止所拥有的:
if [[ $(sha512sum file.zip | cut -d " " -f 1) -ne $(cat file.sha512) ]]; then
log "error" "Checksum values do not match"
exit -1;
else
log "info" "Checksum values match"
unzip file.zip
所以我还有其他名为 file1、file2 的 zip 文件,.sha512 名称也往往与其对应的 zip 文件同名。
提前致谢。
for for file in *.sha512
do
if sha512sum -c --status "$file.sha512"; then
log "info" "Checksum values match"
zipfile="${file/\.sha512/\.zip}"
# zipfile="$(basename "$file" .sha512).zip"
unzip "$zipfile"
else
log "error" "Checksum values do not match"
exit 1
fi
done
应该可以。如果在检查和解压缩后将 .zip 和 .sha512 文件移走,这应该就足够了。否则,您可以使用 find 搜索上周的文件:
find -maxdepth 1 -type f -name "*.sha512" -mtime -6 -exec ./ifscript.sh {} ";"
ifscript.sh 将是上面的 if-else-fi 块,但使用参数而不是文件名:
if sha512sum -c --status ""; then
我有多个 zip 文件,如果它们在传输时没有受到损害,我想检查它们,如果校验和值匹配,那么我需要解压缩文件夹。
我可以对一个 zip 文件执行此操作,但我需要动态检查,因此我不必每次都替换 zip 文件名来 运行 检查。
这是我到目前为止所拥有的:
if [[ $(sha512sum file.zip | cut -d " " -f 1) -ne $(cat file.sha512) ]]; then
log "error" "Checksum values do not match"
exit -1;
else
log "info" "Checksum values match"
unzip file.zip
所以我还有其他名为 file1、file2 的 zip 文件,.sha512 名称也往往与其对应的 zip 文件同名。
提前致谢。
for for file in *.sha512
do
if sha512sum -c --status "$file.sha512"; then
log "info" "Checksum values match"
zipfile="${file/\.sha512/\.zip}"
# zipfile="$(basename "$file" .sha512).zip"
unzip "$zipfile"
else
log "error" "Checksum values do not match"
exit 1
fi
done
应该可以。如果在检查和解压缩后将 .zip 和 .sha512 文件移走,这应该就足够了。否则,您可以使用 find 搜索上周的文件:
find -maxdepth 1 -type f -name "*.sha512" -mtime -6 -exec ./ifscript.sh {} ";"
ifscript.sh 将是上面的 if-else-fi 块,但使用参数而不是文件名:
if sha512sum -c --status ""; then