Recursief een geneste mapstructuur maken & Alle submappen met één opdracht

Anonim

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 binnen submappen van submappen te maken, zonder handmatig naar elke directory te hoeven navigeren om een ​​nieuwe directory te maken, vervolgens weer naar die subdirectory te navigeren om nog een andere directory te maken, enzovoort. .In plaats daarvan maakt een opdrachtregeltruc het volledige tussenliggende mappad in één klap aan.

Om op een gemakkelijke manier een geneste directorystructuur te bouwen, is het gebruik van de vertrouwde mkdir-opdracht vereist, die routinematig wordt gebruikt om een ​​enkele nieuwe map te maken, maar met de bijlage -p om een ​​volledig pad op te geven maken. Als je dit zelf wilt proberen, start je de Terminal-app zoals gevonden in de map /Applications/Utilities/ en volg je om te zien hoe je mkdir -p kunt gebruiken om een ​​reeks mappen te bouwen binnen een enkele opdrachtregel met een opgegeven pad.

Recursief een directorystructuur maken door een pad op te geven

In zijn meest eenvoudige vorm geef je gewoon het pad op zoals in mkdir:

mkdir -p /path/to/make/

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

Als voorbeeld, laten we zeggen dat het geneste mappad dat we willen maken "/Create/These/Folders/Within/Each/Other/" is en geen van deze mappen of submappen bestaat momenteel. Gebruik gewoon de volgende opdrachtreeks om ze allemaal direct te maken:

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

Hierdoor wordt de map "Create" de bovenliggende map, gevolgd door de volledige reeks "/These/Folders/Within/Each/Other/" als de correct geneste onderliggende mappen.

U kunt een zo lang pad specificeren 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 zijn gebouwd en of alles werkte zoals bedoeld door het commando 'vinden' te gebruiken zoals:

zoek (bovenliggende directory) -type d -print

Als we het bovenstaande voorbeeld opnieuw gebruiken, zou het zoekcommando er zo uitzien:

zoek ~/Create/ -typ d -print

De uitvoer van deze opdracht ziet er ongeveer als volgt uit, recursief weergegeven vanuit de bovenliggende map naar alle onderliggende mappen:

$ zoeken ~/Create -type d -print /Create /Create/These /Create/These/Folders /Create/These/Folders/Within /Create/These /Mappen/Binnen/Elk /Maken/Deze/Mappen/Binnen/Elk/Andere

Je kunt natuurlijk ook naar de Finder gaan om te controleren of er een complexe mappenstructuur is opgebouwd, misschien wel het gemakkelijkst te bekijken vanuit de "Lijst"-weergave en vervolgens de driehoeken gebruiken om elke submap recursief te openen en laat de inhoud zien, er ongeveer zo uitziend:

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

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

En ja, het gebruik van de Terminal is verreweg de snelste manier om dit te bereiken, aangezien er geen vergelijkbare truc is die specifiek is voor de Mac Finder, hoewel je in theorie het maken van geneste mappen 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. Wil je nog meer commandoregeltrucs? We hebben u gedekt.

Recursief een geneste mapstructuur maken & Alle submappen met één opdracht