확장자를 기반으로 특정 디렉터리의 파일을 새로 생성된 디렉터리로 이동하는 방법은 무엇입니까?

확장자를 기반으로 특정 디렉터리의 파일을 새로 생성된 디렉터리로 이동하는 방법은 무엇입니까?

내 상황은 각각의 자산 폴더에 여러 개의 파일이 있다는 것입니다. 예를 .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
각 파일 확장자에 대해 재사용하여 파일 확장자와 대상 경로를 변경할 수 있습니다. 파일이 얼마나 흩어져 있는지에 따라 적절한 검색 지점을 선택합니다(저는 루트 / 를 선택했습니다). 확장 기능이 몇 가지만 있는 경우 이것이 최선의 선택이 될 것입니다.

관련 정보