Apa itu direktori "//"?


12

Di berbagai mesin linux Anda bisa

cd /

dan

cd //

Shell akan mengatakan direktori saat ini adalah '/' atau '//' setelah menggunakan perintah yang sesuai.

Jadi pertanyaannya adalah: Apa perbedaan antara '/' dan '//', dan jika jawabannya adalah 'tidak ada perbedaan' maka mengapa '//' ditampilkan secara berbeda dari '/'

BTW

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

Semua hasil di shell mengatakan direktori saat ini adalah '/'

Inilah sesi contoh:

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

2
Ini tampaknya anomali spesifik-bash. Jika Anda mencoba cd //dalam csh atau zsh dan kemudian pwditu akan menunjukkan hanya '/'
Doug Harris

menarik - yang menyoroti di atasnya
sylvanaar

1
Sebagai perbandingan: cd //usr/binberi "// usr / bin", tetapi cd /usr//binberi "/ usr / bin" (dalam Bash).
Dijeda sampai pemberitahuan lebih lanjut.

Jawaban:


14

Mari kita tanyakan pada pria itu sendiri (Chester Ramey):

E10) Mengapa 'cd //' meninggalkan $ PWD sebagai '//'?

POSIX.2, dalam uraiannya tentang 'cd', mengatakan bahwa tiga atau lebih garis miring terkemuka dapat diganti dengan garis miring tunggal ketika mengkanonik direktori kerja saat ini.

Saya kira ini adalah kompatibilitas historis. Versi Unix tertentu, dan sistem file jaringan awal, menggunakan jalur dari form // hostname / path untuk mengakses 'path' di server 'hostname'.


Jawaban yang jauh lebih baik daripada yang (sudah cukup bagus) dari John T.
innaM

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.