Ecco cosa farei (potrebbero esserci modi più efficienti per automatizzarlo, ma questo è un trucco rapido che dovrebbe raggiungere ciò di cui hai bisogno). Spero di aver capito correttamente la tua domanda.
Per ottenere un elenco di tutte le directory (e le loro sottodirectory) all'interno di una directory esistente:
Apri Terminale e vai alla cartella esistente contenente la struttura che desideri duplicare (se non hai familiarità con Terminal, sono felice di dare una guida più specifica su come farlo. Fondamentalmente, se pensi a Terminal come Finder, la cartella predefinita che stai "visualizzando" quando apri Terminal è la tua cartella utente. Da lì, puoi digitare pwd
per vedere dove sei, ls
per vedere un elenco di tutto nella directory corrente, cd [folder name]
per spostarsi in una cartella nella directory, quindi cd ..
per risalire di un livello nella directory padre).
Digitare il seguente comando:
find . -type d
Questo elencherà tutte le directory contenute nella directory corrente , così come ciascuna delle loro sottodirectory (cioè non smetterà di cercare finché non ci saranno più sottodirectory da inserire).
L'elenco avrà voci che assomigliano a questo:
./directory1
./directory1/subdirectory1
./directory2
./directory2/sub2/sub3/sub4
Abbiamo bisogno di pulire la formattazione solo un po 'prima di poter utilizzare questo testo.
Per ripulire il testo in modo che possa essere utilizzato per ricreare la struttura di tale cartella:
Copia questo elenco in qualsiasi editor di testo semplice (non in Microsoft Word); Io uso TextWrangler ma TextEdit viene fornito con il tuo computer. Utilizzando la funzione Trova e sostituisci, rimuovi ogni istanza di ./
(lascia la casella "Sostituisci con" vuota e premi sostituisci tutto). Questo cancellerà tutti i periodi iniziali e le barre, ma conserverà le barre successive che indicano le sottodirectory.
Inoltre, elimina tutte le nuove righe (ad esempio il testo può essere disposto su più righe, ma non dovrebbero esserci nuovi paragrafi espliciti). L'esempio sopra ora sarà simile a:
directory1 directory1/subdirectory1 directory2 directory2/sub2/sub3/sub4
Per creare un numero arbitrario di nuove cartelle con un solo comando:
Nota: Puoi anche fare questo passo usando i nomi delle cartelle da una fonte diversa, ero un po 'confuso da quale fosse la fonte dei nomi delle cartelle nella tua domanda
Ora dovresti avere un elenco di cartelle / sottocartelle tutto in una riga (anche se potrebbe essere disposto su più righe quando viene eseguito il rendering nell'editor di testo) e non ha segni di punteggiatura *. Copia tutto questo testo negli appunti. Torna a Terminale e usa cd [folder]
, cd ..
, ls
e pwd
per navigare verso la cartella di destinazione in cui desideri ricreare la struttura delle cartelle, come descritto sopra.
Una volta che sei nella cartella giusta, digita:
mkdir -p
e poi comando v , e premi invio. Assicurati che ci sia uno spazio (e nient'altro) tra mkdir -p
e il primo nome di directory, e uno spazio tra ogni successivo nome di directory.
So che le persone hanno vari livelli di familiarità con UNIX e l'ambiente del terminale, quindi se ciò è fonte di confusione non esitate a commentare quali passaggi necessitano di ulteriori chiarimenti.
* Se uno qualsiasi dei nomi di directory incollati nel Terminale ha spazi o caratteri non alfanumerici come (./'!?:_)
ecc., è necessario sfuggire a questi o non funzionerà. Cioè, per ogni spazio o altro carattere strano, devi mettere un \
direttamente prima di esso (notare la differenza tra \
e /
). Quindi music/the beatles
diventa music/the\ beatles
. Puoi anche utilizzare Trova e sostituisci per questo.