You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux中通过for循环批量为目录下所有PDF文件添加水印?

如何在Linux中通过for循环批量为目录下所有PDF文件添加水印?

嘿,我来帮你搞定这个批量加水印的需求!你已经掌握了单PDF文件加水印的pdftk命令,那批量处理其实用Linux的for循环就能轻松实现,分两种常见场景给你详细说:

场景1:保留原文件,生成带标记的新水印文件

如果你不想改动原文件,想生成带-WM.pdf后缀的新水印文件,直接用下面的循环命令就行:

for pdf in *.pdf; do
  pdftk "$pdf" stamp watermark.pdf output "${pdf%.pdf}-WM.pdf"
done

简单解释下命令里的关键部分:

  • *.pdf:会匹配当前目录下所有以.pdf结尾的文件
  • "$pdf":代表当前循环到的单个PDF文件名
  • ${pdf%.pdf}:这是Linux的参数替换语法,作用是去掉原文件名末尾的.pdf后缀,之后再拼接-WM.pdf,就得到了像report-WM.pdf这样的新文件名

场景2:直接替换原文件(谨慎操作!)

如果你想直接给原文件加上水印、覆盖掉原来的文件,记得一定要先备份原文件(避免意外丢失数据),然后用下面的命令:

for pdf in *.pdf; do
  # 先生成临时水印文件,确认成功后再替换原文件
  pdftk "$pdf" stamp watermark.pdf output temp_wm.pdf && mv temp_wm.pdf "$pdf"
done

这里用&&来确保只有当pdftk成功生成水印文件后,才会执行mv命令替换原文件,避免原文件被损坏。

小提示:如果你的水印文件watermark.pdf不在当前工作目录,记得写全它的路径,比如/home/yourname/documents/watermark.pdf。

备注:内容来源于stack exchange,提问作者PolGZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:44:32