Maak recursief een genestelde directorystructuur en alle submappen met één opdracht

Het maken van een reeks geneste mappen in elkaar kan direct worden gedaan via de opdrachtregel. Dit maakt het heel gemakkelijk om onmiddellijk en recursief een complexe directorystructuur van mappen te maken in submappen van submappen, zonder handmatig naar elke map te hoeven navigeren om een ​​nieuwe map te maken, en dan weer naar die submap te gaan om nog een andere map te maken, enzovoort . In plaats daarvan maakt een truc in de opdrachtregel het volledige tussenliggende mappad in één klap.

Het bouwen van een geneste directorystructuur op de gemakkelijke manier vereist het gebruik van de vertrouwde mkdir-opdracht, die routinematig wordt gebruikt om een ​​enkele nieuwe map te maken, maar met de bijlage van de vlag -p om een ​​volledig pad op te geven om te maken. Als u dit zelf wilt proberen, start u de Terminal-app zoals gevonden in de map / Programma's / Hulpprogramma's / en volgt u hoe u mkdir -p gebruikt om een ​​reeks mappen te maken binnen een enkele opdrachtregel met een opgegeven pad.

Een directorystructuur recursief maken door een pad op te geven

In de meest eenvoudige vorm, specificeer je het pad als zo naar mkdir:

mkdir -p /path/to/make/

De vlag -p verzekert dat alle submappen recursief en op de juiste plaats worden gemaakt.

Laten we bijvoorbeeld zeggen dat het geneste directorypad dat we willen maken "/ Create / These / Folders / Within / Each / Other /" is en geen van deze mappen of submappen bestaat momenteel. Om direct alles te maken, gebruikt u gewoon de volgende opdrachtstring:

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

Hierdoor wordt de map "Maken" als de bovenliggende map gevolgd door de volledige reeks "/ Deze / mappen / Binnen / Elk / Overig /" als de correct geneste onderliggende mappen.

U kunt een pad zo lang opgeven als u wilt bouwen en het zal onmiddellijk de bovenliggende en alle onderliggende onderliggende mappen maken.

Controleren of de directory en alle submappen zijn gemaakt

Om snel te controleren of alle mappen werden gebouwd en dat alles werkte zoals bedoeld door het commando 'find' te gebruiken als volgt:

find (parent directory) -type d -print

Als u het bovenstaande voorbeeld opnieuw gebruikt, zou het find-commando als volgt zijn:

find ~/Create/ -type d -print

De uitvoer van deze opdracht ziet er ongeveer als volgt uit: een recursieve weergave van de bovenliggende map voor alle onderliggende mappen:

$ 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

Je kunt natuurlijk ook naar de Finder gaan om te controleren of er een complexe mapstructuur is gebouwd, misschien het gemakkelijkst te bekijken vanuit de "Lijst" -weergave en dan de driehoeken te gebruiken om elke subdirectory recursief te openen en de inhoud ervan te tonen. als vervolg op:

(Let op de .DS_Store-bestanden worden getoond omdat alle verborgen bestanden zichtbaar zijn)

Dit is een heel nuttige tip die we een tijdje terug hebben behandeld als onderdeel van een handvol handige trucs voor de opdrachtregel, maar gezien het gemak is het de moeite waard om het op zichzelf te nemen.

En ja, het gebruik van de Terminal is verreweg de snelste manier om dit te bereiken, omdat er geen vergelijkbare truc is die specifiek is voor de Mac Finder, hoewel je theoretisch geneste mapcreatie zou kunnen automatiseren via de Automator-app in OS X, indien gewenst. Voor wat het waard is, werkt het mkdir-commando hetzelfde in zowel Mac OS X als linux, dus je kunt het desgewenst op verschillende platforms gebruiken. Wilt u wat meer trucs met opdrachtregels? We hebben je gedekt.