Aqui está o que eu faria (pode haver maneiras mais eficientes de automatizar isso, mas isso é um truque rápido que deve alcançar o que você precisa). Espero ter entendido sua pergunta corretamente.
Para obter uma lista de todos os diretórios (e seus subdiretórios) dentro de um diretório existente:
Abra o Terminal e navegue até a pasta existente que contém a estrutura que você gostaria de duplicar (se você não estiver familiarizado com o Terminal, eu ficarei feliz em dar uma orientação mais específica sobre como fazer isso. Basicamente, se você pensar em Terminal como o Finder, a pasta padrão que você está "visualizando" quando você abre o Terminal é sua pasta de usuário. A partir daí, você pode digitar pwd
para ver onde você está ls
para ver uma lista de tudo no diretório atual, cd [folder name]
para mover-se para uma pasta no diretório e cd ..
para voltar um nível para o diretório pai).
Digite o seguinte comando:
find . -type d
Isto irá listar todos os diretórios contido no diretório atual , bem como cada um dos seus subdiretórios (ou seja, ele não irá parar de procurar até que não haja mais subdiretórios para entrar).
A lista terá entradas semelhantes a esta:
./directory1
./directory1/subdirectory1
./directory2
./directory2/sub2/sub3/sub4
Precisamos limpar a formatação um pouco antes de podermos usar este texto.
Para limpar o texto para que possa ser usado para recriar essa estrutura de pastas:
Copie esta lista em qualquer editor de texto simples (não no Microsoft Word); Eu uso o TextWrangler, mas o TextEdit vem com o seu computador. Usando o recurso localizar e substituir, remova todas as ocorrências de ./
(deixe a caixa "replace with" vazia e pressione replace all). Isso excluirá todos os períodos e barras iniciais, mas reterá barras subsequentes que indicam subdiretórios.
Além disso, exclua todas as novas linhas (ou seja, o texto pode ser agrupado em várias linhas, mas não deve haver novos parágrafos explícitos). O exemplo acima será parecido com:
directory1 directory1/subdirectory1 directory2 directory2/sub2/sub3/sub4
Para criar um número arbitrário de novas pastas com um comando:
Nota: Você também pode fazer esta etapa usando nomes de pasta de uma fonte diferente, fiquei um pouco confuso com a origem dos nomes das pastas em sua pergunta
Agora você deve ter uma lista de pastas / subpastas que esteja toda em uma linha (embora possa ser agrupada em várias linhas quando for renderizada em seu editor de texto) e não possua pontuação *. Copie todo este texto para sua área de transferência. Volte para o Terminal e use cd [folder]
, cd ..
, ls
e pwd
para navegar até a pasta de destino onde você deseja recriar a estrutura de pastas, conforme descrito acima.
Quando estiver na pasta correta, digite:
mkdir -p
e depois comando v e aperte enter. Certifique-se de que existe um espaço (e nada mais) entre mkdir -p
e o primeiro nome do diretório e um espaço entre cada nome de diretório subseqüente.
Eu sei que as pessoas têm diferentes níveis de familiaridade com o UNIX e o ambiente do Terminal, portanto, se isso for confuso, sinta-se à vontade para comentar quais etapas precisam de mais esclarecimentos.
* Observe que, se qualquer um dos nomes de diretório que você colar no Terminal tiver espaços ou caracteres não alfanuméricos, como (./'!?:_)
etc, você precisa escapar deles ou não vai funcionar. Isto é, para cada espaço ou outro personagem estranho, você deve colocar um \
diretamente antes dele (observe a diferença entre \
e /
). assim music/the beatles
torna-se music/the\ beatles
. Você pode usar encontrar e substituir por isso também.