Try*_*ain 3 shell directory recursive wildcards
我已经构建了一个精心设计的 500 多个字符的命令,其中包含许多参数和用于自动签名多个 PDF 文档的开关。
我正在使用 JSignPDF,我想使用它的批处理模式,包括当前目录和子目录。
我遇到问题的命令的相关部分是:
java -jar ../jsignpdf-1.4.3/JSignPdf.jar *.pdf -a
Run Code Online (Sandbox Code Playgroud)
...这当然适用于当前目录中的所有 PDF 文件。我怎样才能使它也能在所有子目录中提取所有 .pdf 文件?
我尝试了一些没有用的东西......新手,甚至不值得一提......像 -r 这样的东西(显然会-/did-n 不起作用)。
我想知道这是一个简单的答案还是需要一些 awk 魔法,如果这甚至有效。任何帮助是极大的赞赏。
使用zsh
or ksh93 -G
,您可以执行以下操作:
java -jar ../jsignpdf-1.4.3/JSignPdf.jar ./**/*.pdf -a
Run Code Online (Sandbox Code Playgroud)
你可以用fish
或做同样的事情bash -O globstar
,但要注意那些在下降目录树时可能会遍历符号链接(在bash
4.3 中部分修复,在 5.0 及更高版本中完全修复)。
否则,如果文件列表不是太大,你可以这样做:
find . -name '*.pdf' -exec sh -c '
exec java -jar ../jsignpdf-1.4.3/JSignPdf.jar "$@" -a' sh {} +
Run Code Online (Sandbox Code Playgroud)
但要注意find
可能会尝试拆分列表并运行多个sh
命令来尝试克服命令行大小的限制。
归档时间: |
|
查看次数: |
398 次 |
最近记录: |