1

My case is that I have multiple .m3u8 and .ts files existing in their corresponding asset folder, e.g.,

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

I want to find all the /index/ directories and separately move their *.m3u8 and *.ts to the corresponding new-created directories. E.g., moving *.m3u8 to **/hls/index/** and moving *.ts to **/index/hls/**

The result shall be like:

/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 

Can some experts shed some lights on how to compose a bash script to do the above tasks?

  • Each /index contains many .m3u8 and many .ts files – S. Chen Sep 27 '17 at 12:44
  • what is the purpose of hls and its order? – RomanPerekhrest Sep 27 '17 at 12:54
  • Are these index directories always on the same level or could they be on different levels e.g. GHI/JKL/index ? – don_crissti Sep 27 '17 at 13:09
  • The index directories are on the same level. Only ABC/index or GHI/index – S. Chen Sep 27 '17 at 14:02
-1

This is a low-level solution but you could create the directories if there aren't too many and then use mv `find / -name *.extension` /destinationPath
Just repeat for each file extension, changing the file extension and destination path. Depending on how scattered your files are, choose an appropriate search point (I choose the root / ). This would be optimal if you only have several different extensions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.