Creazione ricorsiva di una struttura di directory nidificata & Tutte le sottocartelle con un singolo comando

Anonim

La creazione di una serie di directory nidificate l'una nell' altra può essere eseguita istantaneamente tramite la riga di comando. Ciò rende molto facile creare immediatamente e in modo ricorsivo una complessa struttura di directory di cartelle all'interno di sottocartelle di sottocartelle, senza dover navigare manualmente in ciascuna directory per creare una nuova directory, quindi navigare nuovamente in quella sottodirectory per creare un' altra directory e così via .Invece, un trucco della riga di comando creerà il percorso completo della directory intermedia in un colpo solo.

La creazione di una struttura di directory nidificata nel modo più semplice richiede l'utilizzo del familiare comando mkdir, che viene abitualmente utilizzato per creare una singola nuova cartella, ma con l'aggiunta del flag -p per specificare un percorso completo creare. Se vuoi provarlo tu stesso, avvia l'app Terminal come si trova nella cartella /Applicazioni/Utility/ e segui per vedere come utilizzare mkdir -p per creare una serie di directory all'interno di una singola riga di comando utilizzando un percorso specificato.

Creazione ricorsiva di una struttura di directory specificando un percorso

Nella sua forma più semplice, basta specificare il percorso in questo modo a mkdir:

mkdir -p /path/to/make/

Il flag -p assicura che tutte le sottocartelle siano create in modo ricorsivo e nella posizione appropriata.

Ad esempio, supponiamo che il percorso della directory nidificata che vogliamo creare sia "/Crea/Queste/Cartelle/In/Ciascuna/Altro/" e che nessuna di queste cartelle o sottocartelle esista al momento. Per crearli tutti all'istante, basta usare la seguente stringa di comando:

mkdir -p ~/Crea/Queste/Cartelle/All'interno/Ciascuna/Altra/

Questo renderà la cartella "Crea" come la directory principale seguita dalla serie completa di "/Queste/Cartelle/In/Ciascuna/Altro/" come le directory secondarie opportunamente nidificate.

Puoi specificare un percorso lungo quanto vuoi creare e creerà istantaneamente la directory principale e tutte le directory secondarie intermedie.

Verifica della creazione della directory e di tutte le sottocartelle

Per ricontrollare rapidamente che tutte le directory siano state compilate e che tutto funzioni come previsto, utilizzare il comando 'find' in questo modo:

find (directory principale) -type d -print

Usando di nuovo l'esempio precedente, il comando find sarebbe così:

find ~/Crea/ -digita d -print

L'output di questo comando sarebbe simile al seguente, elencando ricorsivamente dalla directory principale a tutte le cartelle secondarie:

$ find ~/Crea -type d -print /Crea /Crea/Queste /Crea/Queste/Cartelle /Crea/Queste/Cartelle/Dentro /Crea/Queste /Cartelle/All'interno/Ciascuno /Crea/Queste/Cartelle/All'interno/Ciascuno/Altro

Naturalmente, puoi anche rivolgerti al Finder per verificare che sia stata creata una struttura di cartelle complessa, forse più facilmente visibile dalla vista "Elenco" e quindi utilizzare i triangoli per aprire ricorsivamente ogni sottodirectory e mostra il suo contenuto, simile al seguente:

(Notare che i file .DS_Store vengono mostrati perché tutti i file nascosti sono visibili)

Questo è un suggerimento davvero utile che abbiamo trattato tempo fa come parte di una manciata di utili trucchi da riga di comando, ma considerando la praticità vale la pena trattarlo da solo.

E sì, l'utilizzo del Terminale è di gran lunga il modo più rapido per farlo, poiché non esiste un trucco simile specifico per il Mac Finder, anche se teoricamente si potrebbe automatizzare la creazione di directory nidificate tramite l'app Automator nel sistema operativo X se lo si desidera. Per quello che vale, il comando mkdir funziona allo stesso modo sia su Mac OS X che su Linux, quindi puoi usarlo su più piattaforme se lo desideri. Vuoi altri trucchi da riga di comando? Ci pensiamo noi.

Creazione ricorsiva di una struttura di directory nidificata & Tutte le sottocartelle con un singolo comando