ฉันเหนื่อย cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory
ด้วย cd ~/Library/Application Support/
-bash: cd: ~/Library/Application Support/: No such file or directory
ฉันเหนื่อย cd "~/Library/Application Support/"
-bash: cd: ~/Library/Application Support/: No such file or directory
ด้วย cd ~/Library/Application Support/
-bash: cd: ~/Library/Application Support/: No such file or directory
คำตอบ:
คุณสามารถใช้Tabปุ่มได้หลังจากกดอักขระสองสามตัวแรก (ซึ่งจะเป็นการ "เติม" ส่วนที่เหลือของโฟลเดอร์ให้คุณเช่นcd ~/L
Tabเติมcd ~/Library/
ชนิดแล้วพิมพ์Ap
Tabและมันจะเติมส่วนที่เหลือให้คุณ
หากมีช่องว่างระหว่างคำและคุณไม่ต้องการที่จะใช้วิธีการดังกล่าวข้างต้นให้ใส่\
(ทับขวา) cd ~/Library/Application\ Support
ก่อนพื้นที่เช่น
shopt -s nocaseglob
และbind 'set completion-ignore-case on'
ทำให้bashไม่ไวต่อตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ประเด็นหลักที่นี่คือวิธีที่เชลล์ ( ทุบตี ) ทำการอ้างอิงและวิธีที่มีผลต่อการขยายตัวหนอนและแยกออกเป็น "คำ" (อาร์กิวเมนต์สำหรับโปรแกรมที่กำลังทำงาน)
ทุบตีให้ถือว่าตัวหนอนนำโดยเฉพาะถ้ามันไม่ได้ยกมา นอกจากนี้ต้องไม่ยกเครื่องหมายทับต่อไปนี้
ในขณะเดียวกันbash parses จะแยกบรรทัดคำสั่งเป็น "words" โดยอ้างอิงจาก whitespace โดยcd
ทั่วไปคำสั่งนั้นต้องการอาร์กิวเมนต์หนึ่งตัว (ไดเรกทอรีปลายทาง) บรรทัดคำสั่งเช่นcd foo bar
หมายถึงการทำงานcd
ที่มีสองข้อโต้แย้ง: และfoo
bar
หากคุณเพียงแค่ต้องการส่งfoo bar
อาร์กิวเมนต์เดียวคุณจะต้องอ้างถึงช่องว่าง:
(เช่น) cd foo\ bar
(ดูตัวอย่างข้อความเพิ่มเติมด้านล่าง)
ในสถานการณ์เฉพาะของคุณคุณต้องปล่อยเครื่องหมายตัวหนอนและเครื่องหมายสแลชต่อไปนี้โดยไม่ต้องใส่เครื่องหมายคำพูดในขณะที่อ้างอิงช่องว่างในชื่อไดเรกทอรี การcd "~/Library/Application Support/"
พิจารณาคดีของคุณจบลงด้วยการอ้างข้อความมากเกินไป (เครื่องหมายตัวหนอนและเครื่องหมายทับ) ในขณะที่การcd ~/Library/Application Support/
ทดลองใช้ของคุณมีราคาน้อยเกินไป (ไม่ต้องเว้นช่องว่างในชื่อไดเรกทอรี)
วิธีแก้ปัญหาที่พบบ่อยที่สุดคือการใช้การเว้นอักขระเดียวเพื่ออ้างอิงพื้นที่:
cd ~/Library/Application\ Support
นอกจากนี้คุณยังสามารถใช้เครื่องหมายคำพูดเดี่ยวหรือคู่ประมาณทั้งช่องว่างหรือช่องว่างและบิตอื่น ๆ ของอาร์กิวเมนต์ (แต่ไม่ใช่~/
!):
cd ~/Library/Application' 'Support
cd ~/Library/Application" "Support
cd ~/Library/App'lication 'Support
cd ~/Library/Application" Supp"ort
cd ~/'Library/Application 'Support
cd ~/"Library/Application "Support
คำพูดประเภทนี้มีความหมายต่างกัน แต่เหมือนกันในตัวอย่างเหล่านี้ เครื่องหมายคำพูดเดี่ยวปกป้องสตริงตัวอักษรในขณะที่เครื่องหมายคำพูดคู่อนุญาตการขยายและการแทนที่ต่างๆในภูมิภาคที่ยกมา
บ่อยครั้งที่คุณปล่อยให้เปลือกทำงานให้คุณ
Globbing (สัญลักษณ์):
cd ~/L*/Ap*
คุณสามารถใช้shopt -s nocaseglob
เพื่อทำให้ตัวพิมพ์เล็กและตัวพิมพ์เล็ก:
cd ~/l*/ap*
แล้วเสร็จ:
กดTabหลังจากที่เข้ามาอาจจะขยายไปยังcd ~/L
การกดอีกครั้งหลังจากเข้า(ตอนนี้คุณมี) อาจจะขยายไปที่(เปลือกใส่เครื่องหมายแบ็กสแลชหนีโดยอัตโนมัติ)cd ~/Library/
TabAp
cd ~/Library/Ap
cd ~/Library/Application\ Support/
คุณสามารถใช้bind 'set completion-ignore-case on'
เพื่อทำให้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เสร็จ:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
<kbd></kbd>
แท็ก HTML (หนึ่งในหลายแท็ก HTML ที่รองรับใน SE markdown )
เมื่อคุณอ้างถึงเส้นทางสองครั้งคุณจะหยุดการขยายตัวหนอน ดังนั้นมีสองสามวิธีในการทำสิ่งนี้:
cd ~/"My Code"
cd ~/'My Code'
เครื่องหมายตัวหนอนจะไม่ถูกยกมาที่นี่ดังนั้นการขยายตัวหนอนจะยังคงทำงาน
cd "$HOME/My Code"
คุณสามารถขยายตัวแปรสภาพแวดล้อมภายในสตริงที่มีเครื่องหมายคำพูดคู่ นี่เป็นสิ่งที่การขยายตัวของตัวหนอนทำ
cd ~/My\ Code
นอกจากนี้คุณยังสามารถหลีกเลี่ยงอักขระพิเศษ (เช่นช่องว่าง) ด้วยแบ็กสแลช
คุณสามารถลากโฟลเดอร์ไปที่หน้าต่างเทอร์มินัลได้เช่นกันเส้นทางที่สมบูรณ์ของไฟล์ / โฟลเดอร์จะถูกวางโดยอัตโนมัติเมื่อลาก
คุณต้องหลบหนีช่องว่างใน " Application Support
"
ลอง $ cd ~/Library/Application\ Support/
%20
หากวิธีปกติไม่ได้ทำงานพยายามพื้นที่แทน
นี้ทำงานให้ฉันเมื่อต้องรับมือกับ SSH และโดเมนแบบอื่น ๆ auto_smb
คำสั่งเช่น
คุณสามารถลองทำสิ่งนี้สำหรับโฟลเดอร์ / ไฟล์ที่เว้นระยะโดยหากชื่อไฟล์หรือโฟลเดอร์มี 1) ชื่อไฟล์คำสั่งควรเป็น cd ~ / file \ name.extension / (หรือ) cd ~ / "ชื่อไฟล์นามสกุล" /