Renomeando arquivos usando o caminho do diretório [duplicado]

1

Eu poderia usar alguma ajuda com um script de shell para renomear arquivos usando partes da árvore de diretórios e o nome do arquivo existente.

Plano de fundo: A convenção de nomenclatura de arquivos é de uma câmera de segurança Amcrest que não pode ser modificada. A câmera cria uma nova pasta para cada minuto e a cada hora do dia.

Os arquivos jpeg são criados usando os segundos após o minuto.

Estrutura de nomenclatura atual:

AMC0103W_93Sxxx/2017-02-07/001/jpg.14/02/29[M][0@0][0].jpg

onde 14 é a hora, 02 é o minuto e 29 são os segundos.

Aqui está o formato que eu gostaria de ter:

AMC0103W_93Sxxx/2017-02-07/140229.jpg

Meu objetivo é definir um trabalho crontab que seja executado por hora para renomeá-los em um novo diretório e, em seguida, excluir o diretório e os arquivos antigos.

    
por Matt W 11.02.2017 / 05:41

1 resposta

1

Zanna sua solução funcionou perfeitamente, obrigado. Quanto aos problemas de segurança com essas câmeras, concordo com você & amp; a razão pela qual eu estou armazenando estes em meu próprio servidor FTP interno usando esses serviços de hospedagem em nuvem duvidosos para câmeras.

Seu script:

find AMC0103W_93Sxxx -type f | rename -n 's|(.*/)[^/]+/jpg/([^/]+)/([^/]+)/([^[]*)\[.*|.jpg|'

A saída:

rename(AMC0103W_93Sxxx/2017-02-11/001/jpg/07/02/27[M][0@0][0].jpg, AMC0103W_93Sxxx/2017-02-11/070227.jpg)
    
por Matt W 11.02.2017 / 15:25