Linux มีเชลล์เริ่มต้น Bash (aka Bourne อีกครั้งเชลล์) เพื่อรันคำสั่งสำหรับระบบ โปรแกรมเมอร์ส่วนใหญ่ชอบ bash มากกว่า cmd เนื่องจากความยืดหยุ่นและตัวแปลบรรทัดคำสั่งที่มีประสิทธิภาพที่ bash มีให้ อย่างไรก็ตาม ผู้ใช้ส่วนใหญ่จะยังคงมีปัญหาในขณะที่พยายามจัดการกับการส่งชื่อไฟล์ที่มีช่องว่างในทุบตี เนื่องจากช่องว่างไม่ถือว่าเหมือนกันใน bash เช่นเดียวกับในชื่อไฟล์
เหตุใด Bash จึงไม่รู้จักชื่อไฟล์ที่มีช่องว่าง
ใน Bash หากคุณพิมพ์หลายคำโดยไม่ หลบหนี อักขระ (\) หรือ ใบเสนอราคา โดยจะถือว่าคำทั้งหมดเป็นข้อโต้แย้ง ที่ใช้กับการดำเนินการทั้งหมด ไม่ว่าคุณจะเปลี่ยนไดเร็กทอรีด้วย 'cd ' หรือพยายามเข้าถึงไฟล์ด้วย 'cat 'คำสั่ง สิ่งที่คุณเขียนหลังจากใช้สิ่งเหล่านี้จะถือเป็นข้อโต้แย้ง ตัวอย่างเช่น:
cat file name.txt
หมายเหตุ :ชื่อไฟล์ของคุณจะเป็นอะไรก็ได้ แต่สำหรับบทความนี้ เราจะใช้ “file name.txt ” เป็นตัวอย่าง
ที่นี่ ‘แมว 'คำสั่งจะพิจารณา ไฟล์ และ ชื่อ เป็นอาร์กิวเมนต์สองข้อแทนที่จะเป็นอาร์กิวเมนต์เดียว อย่างไรก็ตาม หากคุณใช้อักขระหลีกหรือเครื่องหมายคำพูด bash shell จะถือว่าเป็นอาร์กิวเมนต์เดียว ซึ่งจะเป็น “file name.txt “.
ชื่อไฟล์ที่มีช่องว่างใน Bash
มีวิธีการบางอย่างที่สามารถใช้สำหรับช่องว่างในชื่อได้ แนวทางปฏิบัติที่ดีที่สุดคือการหลีกเลี่ยงช่องว่างสำหรับชื่อไฟล์ในอนาคต วิธีง่ายๆ คือการเปลี่ยนชื่อไฟล์ที่คุณพยายามเข้าถึงและลบช่องว่าง บางวิธีใช้อัญประกาศเดี่ยวหรือคู่ในชื่อไฟล์ที่มีการเว้นวรรคหรือใช้สัญลักษณ์ Escape (\) ก่อนเว้นวรรค เราจะนำเสนอวิธีการพร้อมตัวอย่างที่นำไปใช้เพื่อแสดงวิธีการทำงาน
วิธีที่ 1:การใช้ใบเสนอราคาแบบเดี่ยวและแบบคู่
- กด Ctrl + Alt . ค้างไว้ ปุ่มและกด T เพื่อเปิด เทอร์มินัล .
- ตอนนี้เปลี่ยนไดเร็กทอรีไปยังตำแหน่งของไฟล์
(คุณยังสามารถ ลาก และ ดรอป ไฟล์ในเทอร์มินัลหลังจากคำสั่ง 'cat ' ซึ่งจะใส่ใบเสนอราคาบนเส้นทางไฟล์/ไดเรกทอรีโดยอัตโนมัติ)cd Desktop
หมายเหตุ :เดสก์ท็อปสามารถเปลี่ยนเป็นตำแหน่งที่คุณพยายามเข้าถึงได้
- พิมพ์คำสั่งต่อไปนี้เพื่ออ่านไฟล์ข้อความที่มีช่องว่างในชื่อ:
cat 'file name.txt'
หรือ
cat "file name.txt"
- ใบเสนอราคาเดี่ยวและคู่จะส่งผลให้เหมือนกัน ในบางกรณี คุณต้องลองทั้งสองอย่างและดูว่าอันไหนใช้ได้ผล
วิธีที่ 2:การใช้อักขระ Backlash Escape
- กด Ctrl + Alt . ค้างไว้ ปุ่มและกด T เพื่อเปิด เทอร์มินัล .
- เปลี่ยนไดเร็กทอรีไปยังตำแหน่งของไฟล์โดยใช้คำสั่งต่อไปนี้
cd Desktop
หมายเหตุ :ใส่ชื่อตำแหน่งของคุณแทนเดสก์ท็อป
- พิมพ์คำสั่งแล้วใช้ escape ตัวอักษรที่ใดก็ได้ที่มีช่องว่างในชื่อ:
cat file\ name.txt
โบนัส:การใช้ใบเสนอราคาและการหลบหนี
บางครั้งเมื่อคุณใช้ไดเร็กทอรีในคำสั่ง อาจมีผลที่ตามมาสำหรับการใช้ใบเสนอราคาในพาธโดยรวม นี่เป็นเพราะบางคำสั่งเช่น 'mv ' หรือ 'cp ' จะถือว่าพาธเป็น ที่มาของไฟล์ หากใช้ใบเสนอราคาทั้งหมด คุณต้องให้ใบเสนอราคาสำหรับทั้ง แหล่งที่มา และ ปลายทาง ทีละรายการเพื่อให้คำสั่งเช่น 'cp 'สามารถทำงานได้อย่างถูกต้อง คุณยังสามารถตรวจสอบตัวอย่างด้านล่าง ซึ่งจะแสดงให้คุณเห็นว่าการใช้อักขระหลีกสำหรับเส้นทางนั้นซับซ้อนกว่ามาก และผู้ใช้อาจทำผิดพลาดได้