Recursively Gumawa ng Nested Directory Structure & Lahat ng Subfolder na may Isang Command

Anonim

Ang paglikha ng isang serye ng mga nested na direktoryo sa loob ng isa't isa ay maaaring gawin kaagad sa pamamagitan ng command line. Ginagawa nitong napakadali na agad at paulit-ulit na lumikha ng isang kumplikadong istraktura ng direktoryo ng mga folder sa loob ng mga subfolder ng mga subfolder, nang hindi kinakailangang mag-navigate nang manu-mano sa bawat direktoryo upang lumikha ng bagong direktoryo, pagkatapos ay mag-navigate muli sa subdirectory na iyon upang lumikha ng isa pang direktoryo, at iba pa. .Sa halip, isang command line trick ang gagawa ng kumpletong intermediate na path ng direktoryo sa isang iglap.

Pagbuo ng isang nested na istraktura ng direktoryo sa madaling paraan ay nangangailangan ng paggamit ng pamilyar na mkdir command, na karaniwang ginagamit upang lumikha ng isang bagong folder, ngunit kasama ang attachment ng -p flag upang tukuyin ang isang buong path gumawa. Kung gusto mong subukan ito mismo, ilunsad ang Terminal app na makikita sa folder na /Applications/Utilities/ at sundan upang makita kung paano gamitin ang mkdir -p para bumuo ng isang serye ng mga direktoryo sa loob ng isang command line gamit ang isang tinukoy na landas.

Paglikha ng Istruktura ng Direktoryo nang Paulit-ulit sa pamamagitan ng Pagtukoy ng Path

Sa pinakasimpleng anyo nito, tukuyin mo lang ang path tulad ng sa mkdir:

mkdir -p /path/to/make/

Ang -p na flag ay nagsisiguro na ang lahat ng mga subfolder ay ginawang recursively at sa naaangkop na lugar.

Bilang halimbawa, sabihin nating ang nested na path ng direktoryo na gusto nating gawin ay "/Gumawa/Ito/Mga Folder/Sa loob/Bawat isa/Iba/" at wala sa mga folder o subfolder na ito ang kasalukuyang umiiral. Upang agad na gawin silang lahat, gamitin lamang ang sumusunod na command string:

Gagawin nito ang folder na "Gumawa" bilang parent directory na susundan ng buong serye ng "/These/Folders/Within/Each/Other/" bilang mga naaangkop na nested child directory.

Maaari mong tukuyin ang haba ng landas na gusto mong buuin at agad nitong gagawin ang magulang at lahat ng intermediate na direktoryo ng bata.

Pag-verify sa Direktoryo at Lahat ng Subfolder ay Ginawa

Upang mabilis na i-double-check kung ang lahat ng mga direktoryo ay binuo at ang lahat ay gumagana ayon sa nilalayon sa pamamagitan ng paggamit ng command na 'hanapin' tulad nito:

hanapin (direktoryo ng magulang) -type d -print

Gamit muli ang halimbawa sa itaas, ang command na find ay magiging ganito:

hanapin ~/Gumawa/ -type d -print

Ang output ng command na ito ay magiging katulad ng sumusunod, na paulit-ulit na naglilista mula sa direktoryo ng magulang patungo sa lahat ng child folder:

$ hanapin ~/Gumawa -type d -print /Gumawa /Gumawa/Ang mga ito /Gumawa/Ang mga ito/Mga Folder/Gumawa/Ang mga ito/Mga Folder/Sa loob ng /Gumawa/Ang mga ito /Folders/Within/Each /Create/These/Folders/Within/Each/Other

Siyempre, maaari ka ring bumaling sa Finder upang i-verify na ang isang kumplikadong istraktura ng folder ay binuo, marahil ang pinakamadaling tingnan mula sa view na "Listahan" at pagkatapos ay gamitin ang mga tatsulok upang muling buksan ang bawat subdirectory at ipakita ang mga nilalaman nito, na may hitsura tulad ng sumusunod:

(Tandaan ang mga .DS_Store file ay ipinapakita dahil sa lahat ng mga nakatagong file na nakikita)

Ito ay talagang kapaki-pakinabang na tip na tinalakay namin noong nakaraan bilang bahagi ng ilang kapaki-pakinabang na trick sa command line, ngunit kung isasaalang-alang ang kaginhawahan, sulit na sagutin ito nang mag-isa.

At oo, ang paggamit sa Terminal ay ang pinakamabilis na paraan para magawa ito, dahil walang katulad na trick na partikular sa Mac Finder, kahit na ang isa ay maaaring mag-automate ng nested na direktoryo sa pamamagitan ng Automator app sa OS. X kung gusto mo. Para sa kung ano ang halaga nito, gumagana ang mkdir command sa parehong Mac OS X at linux, kaya magagamit mo ito sa mga platform kung ninanais. Gusto mo ng higit pang mga trick sa command line? Sinakop ka namin.

Recursively Gumawa ng Nested Directory Structure & Lahat ng Subfolder na may Isang Command