![如何删除一组文件夹的文件名中“-”后面的所有字符](https://linux22.com/image/209745/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E4%B8%80%E7%BB%84%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%AD%E2%80%9C-%E2%80%9D%E5%90%8E%E9%9D%A2%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%97%E7%AC%A6.png)
我有超过 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
为此添加限定符)。