Rekursivt Opret en nested Directory Structure & All Subfolders med en enkelt kommando

Oprettelse af en række indlejrede mapper indenfor hinanden kan ske øjeblikkeligt gennem kommandolinjen. Dette gør det meget nemt at straks og rekursivt oprette en kompleks katalogstruktur af mapper i undermapper i undermapper uden at skulle manuelt navigere i hver mappe for at oprette en ny mappe og derefter navigere igen til undermappen for at oprette endnu en mappe og så videre . I stedet vil et kommandolinjebud oprette den komplette mellemliggende katalogvej i et fald.

Opbygning af en indlejret katalogstruktur kræver den nemme måde brugen af ​​den velkendte mkdir-kommando, som rutinemæssigt bruges til at oprette en enkelt ny mappe, men med vedhæftet fil af -p-flag for at angive en fuld sti, der skal oprettes. Hvis du vil prøve det selv, skal du starte Terminal-appen som fundet i / Programmer / Hjælpeprogrammer / mappe og følge med for at se, hvordan du bruger mkdir -p til at opbygge en række mapper inden for en enkelt kommandolinje ved hjælp af en bestemt vej.

Oprettelse af en katalogstruktur rekursivt ved at angive en sti

På den mest enkle formular angiver du bare stien som sådan til mkdir:

mkdir -p /path/to/make/

P-flagret sikrer, at alle undermapper er lavet rekursivt og på det rette sted.

Lad os eksempelvis sige, at den nestede katalogsti, vi vil oprette, er "/ Opret / Disse / Mapper / Inden / Hver / Anden /" og ingen af ​​disse mapper eller undermapper eksisterer for tiden. For øjeblikkeligt at gøre dem alle, skal du blot bruge følgende kommandostreng:

mkdir -p ~/Create/These/Folders/Within/Each/Other/

Dette vil gøre "Opret" mappen som overordnet katalog fulgt af den fulde serie af "/ Disse / Mapper / Inne / Hver / Andre /" som de passende indlejrede børnebøger.

Du kan angive så længe på en sti som du vil bygge, og det vil øjeblikkeligt oprette forælder og alle mellemliggende børnebøger.

Bekræftelse af telefonbogen og alle undermapper blev oprettet

For hurtigt at kontrollere, at alle mapper blev bygget, og at alt fungerede som beregnet ved at bruge kommandoen 'find' som sådan:

find (parent directory) -type d -print

Ved hjælp af ovenstående eksempel igen vil find-kommandoen være som sådan:

find ~/Create/ -type d -print

Udgangen af ​​denne kommando vil se noget ud som følgende, rekursivt notering ud fra overordnet mappe til alle børnemapper:

$ find ~/Create -type d -print
/Create
/Create/These
/Create/These/Folders
/Create/These/Folders/Within
/Create/These/Folders/Within/Each
/Create/These/Folders/Within/Each/Other

Selvfølgelig kan du også henvende dig til Finder for at verificere, at en kompleks mappestruktur er opbygget, måske bedst set fra "Listevisningen" og derefter bruge trekanterne til rekursivt at åbne hver undermappe og vise indholdet, se noget som den følge:

(Bemærk, at .DS_Store-filerne vises, fordi alle skjulte filer er synlige)

Dette er et rigtig nyttigt tip, som vi dækkede en stund tilbage som en del af en håndfuld nyttige kommandolinje-tricks, men i betragtning af bekvemmeligheden er det værd at dække på egen hånd.

Og ja, at bruge Terminal er langt den hurtigste måde at opnå dette på, da der ikke er noget lignende trick, der er specifikt for Mac Finder, selvom man teoretisk kunne automatisere indlejret katalogoprettelse via Automator-appen i OS X, hvis det ønskes. For hvad det er værd, fungerer mkdir-kommandoen det samme i både Mac OS X og Linux, så du kan bruge det på tværs af platforme, hvis det ønskes. Vil du have flere kommandolinjestrik? Vi har fået dig dækket.