解密多个受密码保护的 pdf 文件

解密多个受密码保护的 pdf 文件

我尝试了这个命令,但我认为'{}' '{}'.我想要的是后者InputXYZ.pdf OutputXYZ.pdf(我不需要任何重复文件,我想替换旧文件以使阅读更方便)。

$ find . -name "*.pdf" -ok qpdf --password=passMe --decrypt '{}' '{}' \;

如果您有更好、更简单的想法来处理其他程序中的这种重复的输入问题,请毫不犹豫地发表评论或回答。事实上,我的老师使用许多不同的密码,阅读文档非常混乱。也许,有些文件包含密码,然后只是find-cmd 测试每种可能性?

答案1

您不能使输入文件与输出文件相同。充其量qpdf只是抱怨,什么也不做。在最坏的情况下,它会将输出文件截断为零字节,然后抱怨输入文件为空。所以用这个:

find . -name "*.pdf" -ok qpdf --password=passMe --decrypt '{}' '{}'.decoded.pdf \;

qpdf一旦您知道没有以某种意想不到的方式破坏您的文件,您就可以返回并删除重复项。

为了避免每个文件都输入“y”和 RETURN,请使用“yes”命令。 IE

yes | find . -name "*.pdf" -ok qpdf --password=passMe --decrypt '{}' '{}'.decoded.pdf \;

答案2

鉴于@凯尔·琼斯的回答as decrypt_all_files_with(),你可以将所有内容包装在 for 循环中,

for pass in $(cat passwords.txt)
  do decrypt_all_files_with($pass)
done

(但您可能想使用-exec而不是-ok,因为它不要求确认)。

相关内容