需要使用zmv递归重命名多个文件

  • 本文关键字:重命名 文件 递归 zmv zsh
  • 更新时间 :
  • 英文 :


所以我现在正在与脚本作斗争。我正在使用zsh。我试过各种各样的组合,但都没有成功。正在尝试递归更改文件名。所以基本上我有一个变量:file1。我想做的是这样的事情:

zmv -W ${file1}/'**/*(test)*' ${file1}/'**/*red*'

这将递归地将子目录中的任何文件或文件夹从测试更改为红色。因此:如果$file1=/var/log,那么它应该更改:

/var/log/jump/green测试.txt到/var/log/jump/grine红色.txt

还有

/var/log/jump/1/1/测试/test.xyz到/var/log/jump/1/红色/.xyz

基本上,如果我进行了搜索:ls **/*test*它会递归地列出所有包含单词"test"的文件和文件夹。对于zmv解决方案,我想"查找";那些实例,并将测试更改为红色。

我该怎么做?

我希望您先用-n尝试这些东西。。。。

除此之外,在我看来唯一错误的部分是test周围的括号。您为一些不是通配符的东西引入了一个新的模式变量,但您的-W已经隐式地引入了组和引用。因此,我会尝试

zmv -Wn $file1/'**/*test*' $file1/'**/*red*'

如果有效,则移除-n

最新更新