bash 循环中的文件名错误



Intent

我正在尝试遍历一个目录并将所有 9000 个左右的 pdf 文件转换为 png

for i in *.pdf; do
pdftoppm -f 1 -l 2 -png $i ${i%.pdf*}
done

问题所在

该循环仅适用于大约 500 个案例。当我在一些未转换的 pdf 文件上手动调用 pdftoppm 时,它可以工作。

例如,一个在循环中不起作用的文件是w7hnp - FOO BAR 8-18-12 NOT FINAL DOC.pdf。当我使用 Tab 完成手动调用pdftoppm文件名包含转义字符时:w7hnp - FOO BAR 8-18-12 NOT FINAL DOC.pdf并且命令工作正常。

有没有办法确保空间被正确转义?

我需要保留文件名以与数据库中的其他信息匹配,因此重命名将不起作用,除非我可以创建具有新旧名称的字典。

你应该像这样引用变量:"$i""${i%.pdf*}"

相关内容

  • 没有找到相关文章

最新更新