Mover recursivamente arquivos para subpasta relativa

0

Eu procurei por tópicos sobre isso, mas não consegui o que eu precisava. Qualquer solução, seja no Ubuntu ou no Windows cmd , seria muito apreciada.

A estrutura atual é

/folderA/*.txt

com cerca de 100 pastas no nível A e cerca de 50 .txt de arquivos por pasta. A estrutura que precisa se tornar:

/folderA/proj/*.txt

Eu preciso recursivamente mover todos os arquivos txt um nível mais profundo para uma nova subpasta chamada proj .

    
por ltondeleir 01.04.2015 / 10:44

3 respostas

0

Isso deve ser feito no Bash:

#!/bin/bash
shopt -s dotglob
find * -prune -type d | while read d; do 
     mkdir "$d"/proj
     mv "$d"/*.txt "$d"/proj
done

Se você precisar usar o Windows, tente o seguinte:

@ECHO OFF
FOR /D %%G IN (*) DO (
    MKDIR "%%G"\proj
    MOVE "%%G"\*.txt "%%G"\proj > nul
)
    
por 01.04.2015 / 11:23
0

Isso pode ser feito usando o seguinte script. Veja como é a estrutura de diretórios existente Existem cerca de 100 pastas com 50 arquivos .txt em cada.

Tente o seguinte script em um teste de dados com uma estrutura de pastas análoga à que você tem antes de usá-lo para valer.

proj.bat

@echo off
setlocal EnableDelayedExpansion

FOR /D %%G IN (fold*) DO (
MKDIR "%cd%\%%G\proj"
MOVE "%cd%\%%G\*.txt" "%cd%\%%G\proj"
)
    
por 01.04.2015 / 11:23
0

Mova arquivos e pastas para /folderB/proj/*.txt . Remova folderA . Renomeie folderB para folderA .

    
por 01.04.2015 / 16:07