Como mover arquivos de certos diretórios para diretórios recém-criados com base em sua extensão?

1

Meu caso é que eu tenho vários arquivos .m3u8 e .ts existentes em suas pastas de recursos correspondentes, por exemplo,

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

Eu quero encontrar todos os diretórios / index / e mover separadamente seus *.m3u8 e *.ts para os diretórios recém-criados correspondentes. Por exemplo, movendo *.m3u8 para **/hls/index/** e movendo *.ts para **/index/hls/**

O resultado será como:

/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 

Alguns especialistas podem esclarecer como compor um script bash para realizar as tarefas acima?

    
por S. Chen 27.09.2017 / 13:55

1 resposta

-1

Esta é uma solução de baixo nível, mas você pode criar os diretórios se não houver muitos e, em seguida, usar mv 'find / -name *.extension' /destinationPath
Basta repetir para cada extensão de arquivo, alterando a extensão do arquivo e o caminho de destino. Dependendo da dispersão dos seus arquivos, escolha um ponto de pesquisa apropriado (eu escolho a raiz /). Isso seria ótimo se você tivesse apenas várias extensões diferentes.

    
por 27.09.2017 / 15:53

Tags