根据扩展名将文件名转换为小写的脚本

根据扩展名将文件名转换为小写的脚本

根据扩展名将文件名转换为小写的脚本

答案1

要对多个扩展递归地执行此操作,您可以使用 zsh 的 zmv:

zsh -c '
   autoload zmv
   ext=(jpg mp3 ogg)
   zmv -n "(**/)(*.(#i)(${(j:|:)ext}))" "\$1\${(L)2}"'

(高兴时删除-n(或用 替换-v))。

上面的(#i)是打开不区分大小写的通配符,并且是用 来连接列表${(j:|:)ext}的元素。也可以直接写:$ext|

zsh -c '
   autoload zmv
   zmv -n "(**/)(*.(#i)(ogg|jpg|mp3))" "\$1\${(L)2}"'

答案2

我不确定你的问题如何链接到代码,所以我将重点关注这个问题。

bash版本 4 及更高版本中,您可以使用类似以下内容来执行此操作:

for file in ./*.JPG; do     # Iterate over all items in the current directory that match *.JPG
    mv "$file" "${file,,}"  # Move the file found to a lowercase mapping (this is what the ,, parameter expansion method does)
done

显然替换*.JPG为您想要的等效扩展名。

相关内容