ไดเรกทอรี“ //” คืออะไร


12

บนเครื่อง linux ต่างๆที่คุณสามารถทำได้

cd /

และ

cd //

เชลล์จะบอกว่าไดเรกทอรีปัจจุบันคือ '/' หรือ '//' หลังจากใช้คำสั่งที่เกี่ยวข้อง

ดังนั้นคำถามคือ: อะไรคือความแตกต่างระหว่าง '/' และ '//' และถ้าคำตอบคือ 'ไม่แตกต่างกัน' แล้วทำไม '//' แสดงแตกต่างจาก '/'

BTW

cd ///
cd ////
cd /////

ผลลัพธ์ทั้งหมดในเชลล์บอกว่าไดเรกทอรีปัจจุบันคือ '/'

นี่คือตัวอย่างเซสชัน:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
เรื่องนี้ดูเหมือนจะเป็นความผิดปกติเฉพาะทุบตี หากคุณลองใช้cd //csh หรือ zsh จากนั้นpwdจะแสดงเพียง '/'
Doug Harris

ที่น่าสนใจ - ที่หายไฟบางอย่างกับมัน
sylvanaar

1
สำหรับการเปรียบเทียบ: cd //usr/binให้ "// usr / bin" แต่cd /usr//binให้ "/ usr / bin" (ใน Bash)
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

คำตอบ:


14

ลองถามผู้ชายคนนั้นด้วยตัวเอง (Chester Ramey):

E10) เหตุใด 'cd //' ปล่อยให้ $ PWD เป็น '//'

POSIX.2 ในคำอธิบายของ 'cd' กล่าวว่าอาจมีการทับเครื่องหมายทับสามอันหรือมากกว่าด้วยเครื่องหมายทับเดียวเมื่อกำหนดค่าไดเรกทอรีการทำงานปัจจุบัน

นี่คือฉันเข้าใจว่าสำหรับความเข้ากันได้ในอดีต บางรุ่นของ Unix และระบบไฟล์เครือข่ายก่อนหน้านี้ใช้พา ธ ของแบบฟอร์ม // ชื่อโฮสต์ / พา ธ เพื่อเข้าถึง 'เส้นทาง' บนเซิร์ฟเวอร์ 'ชื่อโฮสต์'


คำตอบที่ดีกว่า (สวยดีอยู่แล้ว) จากจอห์นตัน
innaM

9

มันไม่ใช่ไดเรกทอรีจริงมันเป็นปัญหาเฉพาะของทุบตี มันอ้างถึงในเอกสารโครงการลินุกซ์


4
ทำไมไม่มีใครแก้ไขมัน? หรือพวกเขา?
sylvanaar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.