Renomeando arquivos recursivamente e movendo-os dentro de um único diretório

3

Eu tenho um projeto com 500 mil usuários no CentOS. A estrutura do arquivo / diretório de imagens foi configurada assim (sim ... eu sei):

  • user/0070/ este é o ID do usuário / 1000, para que todos os usuários no intervalo de [70000-70999] estejam dentro desse diretório
  • user/0070/70909/ este é o ID do usuário
  • user/0070/70909/p.jpg imagem do perfil (100x100)
  • user/0070/70909/x.jpg imagem em tamanho total

Estou movendo tudo para um CDN, então preciso converter essa estrutura em:

  • user/70909.p.jpg imagem do perfil (100x100)
  • user/70909.x.jpg imagem em tamanho total

Naturalmente, a única maneira de conseguir isso em um período de tempo é executar um script que renomeie e mova todos os arquivos dentro de um único diretório. Alguma ideia? Obrigado!

    
por Carlos Santos 31.12.2014 / 00:51

1 resposta

2

No bash:

cd user
for i in *; do
    for j in $i/*; do
        for k in $j/*; do
            mv $k 'basename $j'.'basename $k'
        done
    done
done
    
por 31.12.2014 / 01:33