首页 > 解决方案 > 重命名文件,如果它是目录中唯一具有扩展名的文件

问题描述

这可行,但是我只想在它是.jpg给定目录的唯一目录时才这样做,下面的目录只会将它们全部重命名为folder.jpg,覆盖其他文件:

find . -type f -name '*.jpg' -execdir mv {} 'folder.jpg' \;

标签: shellfindrename

解决方案


我想find不能按匹配数过滤,但你总是可以执行一个 shell 来为你做更详细的检查:

find . -type f -name '*.jpg' -execdir sh -c '[ $# = 1 ] && mv "$1" folder.jpg' sh {} +

推荐阅读