ฉันมีไดเรกทอรีชื่อ:
-2
ฉันต้องการซีดีมัน แต่ซีดีบ่น:
bash: cd: -2: invalid option
ไม่ประสบความสำเร็จฉันได้ลอง:
cd "-2"
cd '-2'
cd \-2
ทางออกใด ๆ
แก้ไข: ไม่มีไฟล์เบราว์เซอร์เช่น mc และอื่น ๆ บนเซิร์ฟเวอร์
ฉันมีไดเรกทอรีชื่อ:
-2
ฉันต้องการซีดีมัน แต่ซีดีบ่น:
bash: cd: -2: invalid option
ไม่ประสบความสำเร็จฉันได้ลอง:
cd "-2"
cd '-2'
cd \-2
ทางออกใด ๆ
แก้ไข: ไม่มีไฟล์เบราว์เซอร์เช่น mc และอื่น ๆ บนเซิร์ฟเวอร์
คำตอบ:
อย่างน้อยสองวิธี:
ใช้--
อาร์กิวเมนต์
cd -- -2
สิ่งนี้ใช้หลักการทั่วไปที่ใช้กับเครื่องมือของ GNU ซึ่งจะไม่ถือว่าสิ่งใด ๆ ที่ปรากฏขึ้นหลังจากนั้น--
เป็นตัวเลือกบรรทัดคำสั่ง
ตามความเห็นของผู้บันทึกข้อตกลงนี้ยังกำหนดไว้ในมาตรฐาน POSIX :
พฤติกรรมเริ่มต้น:เมื่อส่วนนี้ถูกแสดงเป็น "ไม่มี" หมายความว่าการใช้งานนั้นไม่จำเป็นต้องรองรับตัวเลือกใด ๆ ยูทิลิตี้มาตรฐานที่ไม่ยอมรับตัวเลือก แต่ยอมรับตัวถูกดำเนินการจะรับรู้
"--"
ว่าเป็นอาร์กิวเมนต์แรกที่จะถูกทิ้งข้อกำหนดสำหรับการรับรู้
"--"
เป็นเพราะการใช้งานที่สอดคล้องต้องมีวิธีในการป้องกันตัวถูกดำเนินการจากตัวเลือกโดยพลการใด ๆ ที่การดำเนินงานอาจให้เป็นส่วนขยาย ตัวอย่างเช่นถ้ารายการยูทิลิตี้มาตรฐาน foo แสดงว่าไม่มีตัวเลือกและแอปพลิเคชันที่จำเป็นต้องให้ชื่อพา ธ ที่มียัติภังค์ชั้นนำมันสามารถทำได้อย่างปลอดภัยดังนี้:foo -- -myfile
และหลีกเลี่ยงปัญหาใด ๆ กับ-m ที่ใช้เป็นส่วนขยาย
หลักเกณฑ์ 10:
อาร์กิวเมนต์--
ควรได้รับการยอมรับเป็นตัวคั่นที่ระบุจุดสิ้นสุดของตัวเลือก อาร์กิวเมนต์ใด ๆ ต่อไปนี้ควรถูกใช้เป็นตัวถูกดำเนินการแม้ว่าจะเริ่มต้นด้วย'-'
อักขระ--
อาร์กิวเมนต์ไม่ควรใช้เป็นตัวเลือกหรือเป็นตัวถูกดำเนินการ
ระบุเส้นทางอย่างชัดเจน:
cd ./-2
สิ่งนี้ระบุเส้นทางการตั้งชื่อไดเรกทอรีปัจจุบัน ( .
) เป็นจุดเริ่มต้นอย่างชัดเจน
cd $(pwd)/-2
cd /absolute/path/to/-2
เหล่านี้คือรูปแบบต่าง ๆ ข้างต้น จำนวนรูปแบบใด ๆ ที่อาจเป็นไปได้; ฉันจะปล่อยให้มันเป็นแบบฝึกหัดให้ผู้อ่านค้นพบทั้งหมด
cd
หน้า " cd
ยูทิลิตี้จะต้องเป็นไปตาม ... มาตรา 12.2"
"hello world"
เป็นหนึ่งในข้อโต้แย้ง แต่hello world
เป็นสองคนและเป็นเช่นเดียวกับ"-2"
-2
cd -- --
หรือcd ./--
ควรทำงาน
สิ่งนี้น่าจะใช้ได้:
cd -- -2
- หมายถึงไม่มีตัวเลือกเพิ่มเติม
สิ่งนี้จะใช้ได้ถ้า '-2' อยู่ในไดเรกทอรีปัจจุบัน
cd ./-2
คุณสามารถเติมข้อความอัตโนมัติโดยพิมพ์ - และกดแท็บ
cd /home/...../-2 ยังใช้งานได้ ให้เส้นทางเต็มเพื่อเข้าถึง
เพียงเพื่อเสริมถ้าคุณต้องการที่จะลบ / ลบไดเรกทอรีนี้คุณสามารถใช้คำสั่งต่อไปนี้:
rm -r -- -2
ฉันรู้ว่าคำถามนี้ได้รับการตอบแล้ว หากใครมีสถานการณ์อย่างฉันนี่เป็นของพวกเขา:
ฉันรันแอพ java และกำลังมองหาไดเรกทอรีที่เริ่มต้นด้วย<path>
ฉันควรจะแทนที่ด้วยพา ธ ที่ถูกต้องก่อนเรียกใช้แอป อย่างไรก็ตามฉันลืมที่จะทำเช่นนั้น <path>
แอปพลิเคสร้างไดเรกทอรีที่เรียกว่า
ฉันพยายามที่จะcd <path>
- ให้ฉันข้อผิดพลาด "-bash: ข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็นขึ้นบรรทัดใหม่ที่ไม่คาดคิด" ตามคำแนะนำที่นี่ (ฉันเข้าใจว่ามันสำหรับไดเรกทอรีที่ขึ้นต้นด้วย - และไม่ใช่ <) ฉันพยายามcd -- <path>
แล้ว อย่างไรก็ตามฉันได้รับข้อผิดพลาดเดียวกัน
เมื่อฉันลองcd \<path>\
- มันใช้งานได้!
ข้อมูลพื้นฐาน:
สัญลักษณ์ "<" และ ">" ถูกใช้เพื่อเปลี่ยนเส้นทาง STDIN และ STDOUT ดังนั้นพวกเขาจำเป็นต้องหลบหนีเพื่อที่จะทำให้เชลล์ไม่ได้ interprete พวกมันเป็นการเปลี่ยนเส้นทาง