如何删除一组文件夹的文件名中“-”后面的所有字符

如何删除一组文件夹的文件名中“-”后面的所有字符

我有超过 400 个文件夹想要批量重命名。所有文件夹名称均以“-”加上“-”后面的一串字符结尾。我想删除文件夹名称末尾的“-”和“-”之后的所有字符。

例子:

~/Dubdilla Location Fix-4672010158-2463235/~/Dubdilla Location Fix/

我尝试过使用rename -a 's/[-].*//' *[-]*,虽然没有返回错误,但似乎命令“有效”,但我的文件夹名称没有更改。

答案1

zsh

autoload -Uz zmv

(您可能想将其添加到您的~/.zshrc),然后:

zmv -n '*-*(#q/)' '${f%%-*}'

或者递归地:

zmv -n '(**/)(*-*)(#q/)' '$1${2%%-*}'

如果满意,请删除-n(试运行)。

请注意,它不会触及隐藏目录(您可以D q为此添加限定符)。

相关内容