我有以下文件夹结构:
/[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/
。