我有一个 cron 作业,它运行一个脚本来解压缩某个目录中的所有文件(为了参数而 /rared)并将展开的文件放在 /unrared 中。我想更改此脚本,使其仅在成功解压缩后才从 /rared 中删除原始 rar 存档。
这并不意味着unrar报告他们已经被完全解压了,因为我之前在解压过程中出现过数据损坏的情况。
理想情况下(天上掉馅饼,只是为了让您了解我要拍摄的内容) unrar 程序将包含此功能,将预期的 md5sum 值与实际的 md5sum 值进行比较,并且仅删除存档,如果他们匹配。如果必须,我不介意编写整个过程的脚本,但必须有比解开两次并比较 md5sum 更好的方法。
我的一个朋友一直在研究一个 bash shell 脚本来做到这一点,这在 github 上。
https://github.com/arfoll/unrarall
这是我到目前为止的脚本,它首先检查是否有当前
unrar
操作正在运行,如果有则退出(不想用大量的读/写操作淹没磁盘)。然后,它会 unRAR 中 /rared 中所有尚未被 unRARed 的文件,将提取的文件放在 /unrared 中。它尚未检查提取的文件或删除档案:这是伴随它的 crontab 条目: