拡張子に基づいて特定のディレクトリのファイルを新しく作成されたディレクトリに移動するには?

拡張子に基づいて特定のディレクトリのファイルを新しく作成されたディレクトリに移動するには?

私の状況は、各アセットフォルダに複数のファイルがあることです。たとえば.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
拡張子ごとに再利用して、ファイル拡張子とターゲットパスを変更できます。ファイルがどれだけ散在しているかに応じて、適切な検索ポイントを選択します(私はroot /を選択しました)。拡張機能がいくつかありますが、これが最善の選択になります。

関連情報