我在 macOS 上下载了乌纳尔解压加密的 rar 文件。对于单个文件,它工作正常,但是对于多个文件,我无法使用通配符。
我有一个 rar 文件列表,其文件名从 01...10 以及当前文件夹中的 unar 可执行文件。
myArchive01.rar
myArchive02.rar
..
myArchive10.rar
它对于单个文件非常有用:
$ ./unar -p myPassword myArchive01.rar
myArchive01.rar: RAR
myText.txt (1000 B)... OK.
Successfully extracted to "./myText.txt".
但我无法让它处理一堆文件:
$ ./unar -p myPassword myArchive*.rar
myArchive01.rar: RAR
No files extracted.
我当然可以使用 macOS 中内置的批处理功能,但我想知道 unar 是如何自己做到这一点的
$ for i in {1..10}; do ./unar -p myPassword myArchive${i}.rar; done
有人可以帮忙吗?
答案1
它似乎确实不接受通配符,只接受文件列表。
您可以使用 find -exec 命令对找到的每个文件运行 unar 命令:
find . -name "*.rar" -exec unar {} \;
答案2
您可以使用 find 和 exec 按顺序提取文件。
例如 find ./ -name myArchive* -exec unar -p myPassword {} \;
它的作用是使用 find 查找所有与名称模式匹配的文件,然后对每个找到的结果执行 exec 后的命令。