มันเป็นพฤติกรรมมาตรฐานสำหรับซีดีที่จะเลือกโดยอัตโนมัติเมื่อได้รับชื่อไดเรกทอรีที่ไม่สมบูรณ์?


17

ฉันมีสามโฟลเดอร์ที่เรียกว่าProjectA, และProjectB ProjectCเมื่อฉันtabสมบูรณ์cdไปcd ProjectและกดมันเลือกEnter ProjectCฉันพบว่านี่เป็นกรณีที่มีกรณีอื่นที่คล้ายคลึงกัน; มันเริ่มต้นที่ล่าสุดในการสั่งซื้อพจนานุกรม (แต่นี่ก็อาจมีการเปลี่ยนแปลง / เพิ่มล่าสุด)

นี่เป็นพฤติกรรมเริ่มต้นที่คาดไว้สำหรับcdหรือฉันตั้งบางสิ่งบางอย่างโดยบังเอิญ

ฉันใช้ OSX 10.10.3 กับทุบตี 4.3

คำตอบ:


18

ฉันไม่พบพฤติกรรมนั้น แต่ฉันสามารถทำซ้ำได้ บางทีคุณอาจจะ accidentially cdspellเปลี่ยนแปลงตัวเลือก ดูคู่มืออ้างอิง Bash :

cdspell

หากตั้งค่าข้อผิดพลาดเล็กน้อยในการสะกดคำขององค์ประกอบไดเรกทอรีในคำสั่ง cd จะถูกแก้ไข ข้อผิดพลาดที่ตรวจสอบคืออักขระที่ถูกย้ายอักขระที่ขาดหายไปและอักขระมากเกินไป หากพบการแก้ไขเส้นทางที่ถูกแก้ไขจะถูกพิมพ์และคำสั่งดำเนินการต่อ ตัวเลือกนี้ใช้โดยเชลล์แบบโต้ตอบเท่านั้น

ฉันลองแล้วมันจะแก้ไขพา ธ ในอาร์กิวเมนต์ที่ให้ไว้cdเสมอ หากมีความเป็นไปได้หลายอย่างเช่นในโฟลเดอร์ของคุณด้วยProjectA, ProjectBและProjectCค่าเริ่มต้นให้คนที่จะเป็นวันสุดท้ายในการสั่งซื้อไดเรกทอรี ls -Uคุณสามารถตรวจสอบว่าด้วยการ ดูตัวอย่าง:

user@host:~$ ls -Ul
total 0
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectA
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectB
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectC
user@host:~$ cd Project<tab><tab>
ProjectA/ ProjectB/ ProjectC/
user@host:~$ cd Project
ProjectC
user@host:~/ProjectC$

หากต้องการปิดใช้งานพฤติกรรมดังกล่าวให้ใช้:

shopt -u cdspell

ที่น่าสนใจ แต่ทำไมมันถึงเลือกอันที่อยู่ในลำดับไดเรกทอรี? ดูเหมือนว่าจะไม่มีการบันทึกไว้
Faheem Mitha

ฉันไม่พบแหล่งที่มาสำหรับสิ่งนั้น ในซอร์สโค้ดของ bash จะมีฟังก์ชั่นที่เรียกspnameว่าคืนชื่อไฟล์ที่สะกดอย่างถูกต้อง มันเป็นแรงบันดาลใจthe code in "The UNIX * Programming Environment", Kernighan & Pike, Prentice-Hall 1984, pages 209 - 213.
ความวุ่นวาย

ดูเหมือนข้อผิดพลาดในเอกสาร คุณควรรายงานให้ทุบตี หากคุณเป็นเช่นนั้นคุณสามารถรวมลิงก์ไปยังจุดบกพร่องในคำตอบของคุณ
Faheem Mitha

@chaos ใช่ฉันเห็นว่าฉันได้shopt -s cdspellตั้งค่าไว้แล้ว.bashrc(ฉันทำสำเนาและวางจำนวนมากเพื่อให้สามารถใช้งานร่วมกับ osx / linux cross ได้.bashrcและควรให้ความสนใจมากขึ้นอย่างเห็นได้ชัด) ฉันชอบมันมากฉันไม่สามารถหาคำตอบได้ว่าทำไม ขอบคุณ!
Rob Holt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.