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
/
Zabba
sumber

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.

Mikel
sumber