我的问题几乎与那些但是,它的解决方案对我的情况不起作用。我想删除重复的扩展名(在我的情况下.zip.zip
),只保留一个(即.zip
)。我试过了:
rename 's/.zip/.zip$/.zip/' *.zip.zip
和
find . -depth -name "*.zip.zip" -exec rename 's/\.zip\.zip$/.zip/' {} +
但在两种情况下均未重命名文件。
答案1
使用 globstar 和 rename 递归重命名文件:
$ shopt -s globstar; rename 's/\.zip$//' **/*.zip.zip
使用 mmv 重命名文件:
$ mmv ';*.zip.zip' '#1#2.zip'
12 ^ ^
;
匹配目录树中任意深度的文件。*
匹配任意字符零次或多次。#
对 from 模式中的第 n 个通配符的引用。
答案2
下面的方法就成功了。
find . -depth -name "*.zip.zip" -exec sh -c 'mv "$1" "${1%.zip.zip}.zip"' _ {} \;