小编Man*_*ngo的帖子

从 bash 调用 zmv

我最近发现了这种使用以下方法重命名文件的技术zsh

autoload zmv
zmv '(*).JPG' '$1.jpg'
Run Code Online (Sandbox Code Playgroud)

我也可以写成:

autoload zmv; zmv '(*).JPG' '$1.jpg'
Run Code Online (Sandbox Code Playgroud)

这就像宣传的那样工作,我可以用它来将大写JPG扩展名更改为小写。

但是,我想从我常用的 BASH shell 中将它作为单行运行。当我尝试按如下方式调用它时:

zsh -c "autoload zmv; zmv -f '(*).JPG' '$1.jpg'"
Run Code Online (Sandbox Code Playgroud)

或作为:

echo 'autoload zmv; zmv -f "(*).JPG" "$1.jpg"' | zsh -i
Run Code Online (Sandbox Code Playgroud)

我收到类似以下消息

zmv: error(s) in substitution:
….JPG and ….JPG both map to .jpg
Run Code Online (Sandbox Code Playgroud)

这向我表明,这zsh是不区分大小写的处理文件名,但在第一种方式运行时似乎并非如此。

显然,我不知道我在这里做什么。我还尝试反转单引号和双引号,以防外壳扩展受到阻碍。

如何从 bash 以单行方式运行此命令?

shell zsh quoting rename

0
推荐指数
1
解决办法
878
查看次数

标签 统计

quoting ×1

rename ×1

shell ×1

zsh ×1