Answers:
简单方法:仅在当前目录中的文件
使用zsh:
autoload zmv
zmv '(*)-0(.png)' '$1$2'
与其他壳:
for x in *-0.png; do mv -- "$x" "${x%-0.*}.png"; done
增强的方法:当前目录和/或子目录中的文件
使用zsh:
zmv '(**/)(*)-0(.png)' '$1$2$3'
使用ksh93:
set -o globstar
for x in **/*-0.png; do mv -- "$x" "${x%-0.*}.png"; done
如上所述,如果bash≥4,则使用shopt -s globstar
代替set
命令。
与其他壳:
find -name '*-0.png' -exec sh -c 'for x; do mv -- "$x" "${x%-0.*}.png"; done' _ {} +
在OSX的Fish Shell中:
for f in *.png; mv -n $f (basename $f -0.png).png; end
鱼壳:https : //fishshell.com/
如果您有mmv
包装:
mmv '*-0.png' '#1.png'
像(的最新版本)一样rename
,这将采取合理的措施以避免覆盖现有文件。