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