วิธีจัดการการส่งผ่านชื่อไฟล์ด้วย 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: ใช้ใบเสนอราคาเดี่ยวและคู่

  1. ถือ Ctrl + Alt ปุ่มและกด ที เพื่อเปิด เทอร์มินอล.
  2. ตอนนี้เปลี่ยนไดเร็กทอรีเป็นที่ตั้งของไฟล์
    (นอกจากนี้คุณยังสามารถ ลาก และ หล่น ไฟล์ในเทอร์มินัลหลังคำสั่ง ‘แมว‘ซึ่งจะใส่ใบเสนอราคาในเส้นทาง / ไดเรกทอรีของไฟล์โดยอัตโนมัติ)

    ซีดีเดสก์ท็อป

    บันทึก: เดสก์ท็อปสามารถเปลี่ยนเป็นตำแหน่งที่คุณพยายามเข้าถึงได้

  3. พิมพ์คำสั่งต่อไปนี้เพื่ออ่านไฟล์ข้อความที่มีช่องว่างในชื่อ:
    cat 'file name.txt'

    หรือ

    cat "ไฟล์ name.txt"
  4. ใบเสนอราคาเดี่ยวและคู่จะให้ผลลัพธ์เหมือนกัน ในบางกรณีคุณต้องลองทั้งสองอย่างและดูว่าอันไหนใช้ได้ผล

วิธีที่ 2: การใช้ Backlash Escape Character

  1. ถือ Ctrl + Alt ปุ่มและกด ที เพื่อเปิด เทอร์มินอล.
  2. เปลี่ยนไดเร็กทอรีเป็นตำแหน่งของไฟล์โดยใช้คำสั่งต่อไปนี้
    ซีดีเดสก์ท็อป

    บันทึก: ใส่ชื่อสถานที่ของคุณแทนเดสก์ท็อป

  3. ตอนนี้พิมพ์คำสั่งและใช้ หนี อักขระที่ใดก็ได้ที่มีช่องว่างในชื่อ:
    ไฟล์ cat \ name.txt

โบนัส: การใช้ใบเสนอราคาและการหลบหนี

บางครั้งเมื่อคุณใช้ไดเร็กทอรีในคำสั่งอาจมีผลจากการใช้ใบเสนอราคาบนพา ธ โดยรวม เนื่องจากบางคำสั่งเช่น ‘mv' หรือ 'cp‘จะพิจารณาเส้นทางเป็น แหล่งที่มาของไฟล์ หากใช้ใบเสนอราคาทั้งหมด คุณต้องระบุใบเสนอราคาสำหรับทั้งสองอย่าง แหล่งที่มา และ ปลายทาง ทีละคำสั่งเช่น ‘cp‘สามารถทำงานได้อย่างถูกต้อง. คุณยังสามารถตรวจสอบตัวอย่างด้านล่างซึ่งจะแสดงให้คุณเห็นว่าการใช้อักขระหลีกสำหรับเส้นทางนั้นซับซ้อนกว่ามากและผู้ใช้อาจทำผิดพลาดได้

Facebook Twitter Google Plus Pinterest