Eu tenho uma estrutura de pastas que foi (mal) mantida por um número de trabalhos automatizados. Um dos efeitos colaterais desses trabalhos parece ser o de criar nomes de pastas duplicados (e, posteriormente, duplicar imagens).
Eu tenho cerca de 50 GB de imagens hospedadas neste servidor e uma estimativa conservadora sugere que pelo menos 10% disso seja duplicado. Estou no processo de migração para alguma nova infraestrutura e gostaria de desduplicar os arquivos e pastas.
Dada uma estrutura de diretórios como segue
images/New_Site/Food
images/New_Site/Food/Content
images/New_Site/Food/Content/Content
images/New_Site/Food/Content/Waterfall
images/New_Site/Food/Food
images/New_Site/Food/Food/Content
images/New_Site/Food/Food/Recipes
images/New_Site/Food/Recipes
images/New_Site/Food/Recipes/Recipes
images/New_Site/Home
images/New_Site/Home/Home
images/New_Site/Kids
images/New_Site/Kids/Kids
images/New_Site/Men
images/New_Site/Men/Men
images/New_Site/New_Site
images/New_Site/New_Site/Baby
images/New_Site/New_Site/Beauty
images/New_Site/New_Site/Corporate
images/New_Site/New_Site/Corporate/About
images/New_Site/New_Site/Corporate/Careers
images/New_Site/New_Site/Corporate/Education
images/New_Site/New_Site/Corporate/Legal
images/New_Site/New_Site/Food
Eu quero gerar um script que copie apenas as seguintes pastas (sem recursão)
images/New_Site/Food
images/New_Site/Food/Content
images/New_Site/Food/Content/Waterfall
images/New_Site/Food/Recipes
images/New_Site/Home
images/New_Site/Kids
images/New_Site/Men
Existem mais de 2200 pastas na atual estrutura duplicada, portanto, limpá-las manualmente não é um processo repetível eficiente.
Para complicar, preciso migrar os itens desduplicados de um AIX para um ambiente Windows 2012 R2. Eu posso usar o Putty SCP para copiar arquivos entre servidores ou posso criar um arquivo zip (embora em 50Gb, não tenho certeza se o Archive é uma boa idéia).
Minha abordagem seria encontrar todas as pastas, remover qualquer pasta que tenha um nome duplicado imediatamente após o nome anterior usando o '/' como um delimitador. Então, logicamente, posso resolver isso, mas não consigo traduzi-lo para um comando do tipo grep. Qualquer ajuda muito apreciada.