ขยายตัวรั้งไวยากรณ์ยอมรับจุลภาค แต่ก็ไม่ยอมรับช่องว่างหลังเครื่องหมายจุลภาคที่ ในหลายภาษาการเขียนโปรแกรมช่องว่างหลังจากเครื่องหมายจุลภาคเป็นเรื่องธรรมดา แต่ไม่ใช่ที่นี่ ใน Bash การมีอยู่ของพื้นที่ที่ไม่ได้ระบุไว้จะช่วยป้องกันไม่ให้เกิดการขยายตัวของรั้ง
ลบพื้นที่และมันจะทำงาน:
cp ~/some/dir/{my-file-to-rename.bin,new-name-of-file.bin}
ในขณะที่ไม่จำเป็นเลยโปรดทราบว่าคุณสามารถย้ายส่วนท้าย.bin
ออกจากวงเล็บปีกกา:
cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
หากคุณต้องการทดสอบผลกระทบของการขยายรั้งคุณสามารถใช้echo
หรือprintf '%s '
หรือprintf
กับสตริงรูปแบบที่คุณต้องการเพื่อทำ (โดยส่วนตัวแล้วฉันใช้echo
สำหรับสิ่งนี้เมื่อฉันอยู่ใน Bash เนื่องจากตัวที่สร้างขึ้นของ Bashecho
ไม่ขยายลำดับการหลบหนีตามค่าเริ่มต้นและเหมาะสมอย่างยิ่งในการตรวจสอบว่าคำสั่งใดจะทำงานจริง) ตัวอย่างเช่น:
ek@Io:~$ echo cp ~/some/dir/{my-file-to-rename,new-name-of-file}.bin
cp /home/ek/some/dir/my-file-to-rename.bin /home/ek/some/dir/new-name-of-file.bin