Apa direktori double slash (//)?


29

Aku keliru mengetik cd //bukan cd /. Yang mengejutkan saya, direktori saat ini muncul sebagai //.

Direktori apa itu? Kenapa itu ada?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/

Jawaban:


42

//biasanya sama dengan /. ///harus sama dengan /.

lsakan menunjukkan Anda yang cd //membawa Anda ke direktori root, sama seperti yang Anda cd /lakukan.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

Cara teknis untuk mengkonfirmasi mereka pasti direktori yang sama adalah:

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

mereka akan mencetak nomor inode yang sama, artinya mereka adalah hal yang sama.

Detail berdarah didokumentasikan dalam spesifikasi Resolusi Pathname POSIX :

Pathname yang terdiri dari satu slash harus diselesaikan ke direktori root dari proses. Pathname nol tidak akan berhasil diselesaikan. Pathname yang dimulai dengan dua garis miring berturut-turut dapat diinterpretasikan dengan cara yang ditentukan oleh implementasi, meskipun lebih dari dua garis miring utama harus diperlakukan sebagai garis miring tunggal.

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.