ZSH:从用于管道命令的文件列表中剥离路径、文件名和扩展名

Ame*_*ina 4 zsh imagemagick

该命令的语法convertImageMagick的

convert source_filename.ext1  destination_filename.ext2
Run Code Online (Sandbox Code Playgroud)

我想使用 zsh 将文件夹中的文件提供给它,并在文件夹下path_to_source输出结果(具有相同名称但具有不同扩展名的文件)path_to_destination

我相信我可以使用findandxargs为此,但我没有想出任何有效的方法。此外,我认为 ZSH 可能有一些对此有用的内置函数。任何指针将不胜感激。

注意:据我所知,convert没有处理一批文件的本地方式,所以我需要一个一个地提供文件。在任何一种情况下,我都有兴趣解决使用这些参数逐个文件提供命令文件的问题。

Gil*_*il' 7

for x in /path/to/source/**/*.ext1; do convert $x ${x:r}.ext2 done
Run Code Online (Sandbox Code Playgroud)

r${x:r}是一个历史修改。有一个简短的形式for可以节省几个字符。

for x (/path/to/source/**/*.ext1) convert $x ${x:r}.ext2
Run Code Online (Sandbox Code Playgroud)