我想创建一个 thunar 自定义操作,让我可以右键单击 PDF,然后选择“拆分 PDF”将其拆分为单独的页面。执行此操作的命令是:
$ pdfseparate mypdf.pdf mypdf-%d.pdf
这将为每个页面创建一个新的 PDF,称为mypdf-1.pdf
,mypdf-2.pdf
等。%d
根据手册页,由带有页码的 pdfseparate 命令替换:
SYNOPSIS pdfseparate [options] PDF-file PDF-page-pattern
PDF-page-pattern should contain %d (or any variant respecting printf format), since %d is replaced by the page number.
Thunar 自定义操作将any%n
作为所选文件插入%d
到文件所在的目录。因此,如果我尝试复制上述命令,替换mypdf.pdf
为%n
,它看起来像这样:
pdfseparate "%n" "$(basename "%n" .pdf)-%d.pdf"
但是,thunar 会将 替换%d
为文件的目录。我怎样才能逃脱,所以它会被逐字%d
传递?pdfseparate
pdfseparate
似乎没有选择使用不同变量的选项,%d
但它确实说它接受“任何尊重 printf 格式的变体”。我不确定那是什么意思……我试过%s
了,但没有用。
在类似 printf 的工具中,您通常可以使用
%%
for a literal%
。例如,在printf
标准 C 库(参见 参考资料man 3 printf
)的手册页中,您将看到:因此,要转义
%
并将其视为文字%
,只需使用%%
. 在您的情况下,这意味着您要给 thunar 的命令是: