Aquí es lo que yo haría (no pueden ser más eficientes maneras de automatizar esto, pero este es un truco rápido que debería lograr lo que usted necesita). Espero haber entendido bien su pregunta.
Para obtener una lista de todos los directorios (y sus subdirectorios) dentro de un directorio existente:
Abra el Terminal y navegar a la carpeta existente que contiene la estructura desea duplicar (si usted no está familiarizado con el Terminal, estoy feliz de darle una orientación más específica sobre cómo hacer esto. Básicamente, si usted piensa de Terminal como Buscador, la carpeta predeterminada que está "viendo" al abrir un Terminal es su carpeta de usuario. Desde allí, puede escribir pwd
a ver por donde, ls
para ver una lista de todo lo que en el directorio actual, cd [folder name]
a mover a una carpeta en el directorio y, a continuación, cd ..
a moverse hacia un nivel para el directorio padre).
Escriba el siguiente comando:
find . -type d
Esto mostrará una lista de todos los directorios contenidos en el directorio actual, así como cada uno de sus subdirectorios (es decir, no va a dejar de buscar hasta que no hay más subdirectorios para entrar).
La lista tendrá entradas que se ven algo como esto:
./directory1
./directory1/subdirectory1
./directory2
./directory2/sub2/sub3/sub4
Debemos limpiar el formato hasta un poco antes de que podamos usar este texto.
Para limpiar el texto de tal manera que puede ser utilizado para recrear la estructura de carpetas:
Copia de esta lista en cualquier editor de texto plano (no Microsoft Word); uso TextWrangler pero TextEdit viene con su computadora. El uso de la función buscar y reemplazar, eliminar todas las instancias de ./
(deje el cuadro "reemplazar con" blanco y haga clic en reemplazar todos). Esto eliminará todos los períodos iniciales y barras, pero conservan posterior barras que indican los subdirectorios.
También, eliminar todas las líneas nuevas (es decir, el texto puede envolver en varias líneas, pero no debe explícita nuevos párrafos en los que hay). En el ejemplo anterior ahora el siguiente aspecto:
directory1 directory1/subdirectory1 directory2 directory2/sub2/sub3/sub4
Para crear un número arbitrario de nuevo las carpetas con un solo comando:
Nota: también Se podría hacer este paso con los nombres de carpeta de una fuente diferente, yo estaba un poco confundido por lo que el origen de los nombres de las carpetas que había en tu pregunta
Ahora usted debe tener una lista de carpetas/subcarpetas que es todo en una sola línea (aunque puede que se ajuste a varias líneas cuando se dicte en su editor de texto), y no tiene signos de puntuación*. Copia todos los de este texto en el portapapeles. Volver a la Terminal, y el uso de cd [folder]
, cd ..
, ls
y pwd
para navegar a la carpeta de destino donde desea volver a crear la estructura de carpetas, como se describió anteriormente.
Una vez que están en la carpeta de la derecha, escriba:
mkdir -p
y, a continuación, el comando dev, y pulse enter. Asegúrese de que hay un espacio (y nada más) entre mkdir -p
y el primer nombre del directorio, y un espacio entre cada nombre de directorio.
Sé que las personas tienen diferentes niveles de familiaridad con UNIX y el entorno de la Terminal, así que si esto es confuso siéntase libre de comentar los pasos que se necesita más aclaraciones.
*Tenga en cuenta que si alguno de los nombres de directorio que pegar en la Terminal de tener espacios o no caracteres alfanuméricos, como (./'!?:_)
etc., usted necesita para escapar de ellos, o no funcionará. Es decir, para cada espacio o de otro extraño personaje, debe poner un \
directamente antes de que (tenga en cuenta la diferencia entre \
y /
). Por lo music/the beatles
hace music/the\ beatles
. Puede utilizar la función buscar y reemplazar para esto también.