ฉันมีสิ่งนี้:
% ls -1dF /tmp/foo/*
/tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/
/tmp/foo/002e34c2218f2c86fefd2876f0e5c2559c5fb3c4/
/tmp/foo/00b483576791bab751e6cb7ee0a7143af43a8069/
.
.
.
/tmp/foo/fedd0f7b545e7ae9600142656756456bc16874d3/
/tmp/foo/ff51ac87609012137cfcb02f36624f81cdc10788/
/tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/
ฉันต้องการที่จะสร้างไดเรกทอรีภายใต้แต่ละไดเรกทอรีย่อยที่อยู่ภายใต้bar
foo
ถ้าฉันลองทำสิ่งนี้ด้วย
% mkdir -p /tmp/foo/*/bar
... ฉันได้รับข้อผิดพลาด
zsh: no matches found: /tmp/foo/*/bar
(ในการเข้าใจย้อนหลังฉันสามารถเข้าใจเหตุผลสำหรับข้อผิดพลาด)
ฉันรู้ว่าฉันสามารถแก้ปัญหาเดิมด้วย for-loop ได้ แต่ฉันอยากรู้ว่าzsh
สนับสนุนการขยายพารามิเตอร์บางรูปแบบที่จะสร้างอาร์กิวเมนต์ที่ต้องการสำหรับการเรียกใช้ครั้งเดียวmkdir -p
หรือไม่ IOW การขยายพารามิเตอร์เทียบเท่ากับ "ผนวก/bar
กับทุกส่วนนำหน้าที่สร้างโดยการขยาย/tmp/foo/*
" ทำให้
% mkdir -p /tmp/foo/000f9e956feab3ee4625aebb65ae7bae9533cdbc/bar ... /tmp/foo/ff8b983a7411395344cad64182cb17e7cdefa55e/bar