从子文件夹递归复制文件并添加文件扩展名

从子文件夹递归复制文件并添加文件扩展名

我有以下文件夹结构:

/[randomChars]/icons/icon_[randomNumbersAndChars]

例如:

/awbwaidhawd/icons/icon_1241245
/awbwaidhawd/icons/icon_1552542
/awgawbvbbbb/icons/icon_1552542
/aawbbbbbbbb/icons/icon_1161266

我需要递归地抓取所有图标文件,为它们添加文件扩展名“.png”,然后将它们复制到另一个文件夹。

这意味着我想要实现以下结果:

/icon_1241245.png
/icon_1552542.png
/icon_1552542.png
/icon_1161266.png

为此,我想使用标准 bash linux 脚本。

你是如何做到的?

编辑:

也许我应该补充一下,第一层还有更多不重要的子文件夹。这意味着存在例如这样的文件夹:

/awbwaidhawd/avatars/

不应扫描此类文件夹。

此外,“icons”文件夹中可能存在未命名为“icon_xxxxx”的文件。这些文件也不应该被移动。

答案1

也许这是一个简单的解决方案:

find /source/directory -type f -execdir cp {} `pwd`/destination/directory/\{\}.png \;

当然,--name如果你不想复制,你可以通过名称()进行过滤每一个文件。请注意,如果有同名文件,它们将被覆盖/destination/directory/

相关内容