มีกลอุบายจำนวนมาก (มีซ้ำที่ฉันคิดว่าพบ) แต่สำหรับสิ่งนี้ฉันมักจะทำ
cp /etc/prog/dir1/myconfig.yml{,.bak}
ซึ่งได้รับการขยายไปยังคำสั่งของคุณ
นี้เรียกว่าการขยายตัวรั้ง ในรูปแบบที่ใช้ที่นี่{}
นิพจน์ระบุจำนวนของสตริงที่คั่นด้วยเครื่องหมายจุลภาค เหล่านี้ "ขยาย" ทั้ง/etc/prog/dir1/myconfig.yml{,.bak}
การแสดงออกเปลี่ยน{}
เป็นส่วนหนึ่งกับแต่ละสายในการเปิด: สตริงที่ว่างเปล่าให้/etc/prog/dir1/myconfig.yml
แล้วให้.bak
/etc/prog/dir1/myconfig.yml.bak
ผลที่ได้คือ
cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak
นิพจน์เหล่านี้สามารถซ้อนกันได้:
echo a{b,c,d{e,f,g}}
ผลิต
ab ac ade adf adg
มีตัวแปรที่ใช้ตัวเลขเพื่อสร้างลำดับ:
echo {1..10}
ผลิต
1 2 3 4 5 6 7 8 9 10
และคุณยังสามารถระบุขั้นตอน:
echo {0..10..5}
ผลิต
0 5 10
bash-fu
:)