如何根据扩展名将文件从某些目录移动到新创建的目录?

如何根据扩展名将文件从某些目录移动到新创建的目录?

我的情况是,我有多个.m3u8.ts文件存在于其相应的资产文件夹中,例如,

/vod/CDN/ABC/index/.m3u8 and .ts 
/vod/CDN/DEF/index/.m3u8 and .ts
... 
/vod/CDN/XXX/index/.m3u8 and .ts

我想找到所有 /index/ 目录,并分别将它们的*.m3u8和移动*.ts到相应的新创建的目录中。例如,*.m3u8搬到**/hls/index/***.ts搬到**/index/hls/**

结果应该是这样的:

/vod/CDN/ABC/hls/index/.m3u8 
/vod/CDN/ABC/index/hls/.ts 
/vod/CDN/DEF/hls/index/.m3u8 
/vod/CDN/DEF/index/hls/.ts 
...
/vod/CDN/XXX/hls/index/.m3u8 
/vod/CDN/XXX/index/hls/.ts 

一些专家能否阐明如何编写 bash 脚本来完成上述任务?

答案1

这是一个低级解决方案,但如果目录不是太多,您可以创建目录,然后mv `find / -name *.extension` /destinationPath
对每个文件扩展名重复使用,更改文件扩展名和目标路径。根据文件的分散程度,选择适当的搜索点(我选择根 / )。如果您只有几个不同的扩展名,这将是最佳选择。

相关内容