Saya sedang bekerja di terminal saya, ketika saya salah mengeja saat cd untuk melakukan root (/ ). Secara tidak sengaja, saya mengetik // dan saya masuk terminal:
[email protected]://#
Saat saya mengetik pwd , saya mendapat respons // tetapi ketika saya mengetik ls -s saya mendapat daftar yang sama seperti di / direktori.
Ketika Anda mengetik lebih dari 2, yaitu /// Anda mendapatkan:
[email protected]:/#
Selalu 1 / kecuali 2. Apakah ada perbedaan dan apa itu // untuk?
Jawaban Terbaik
/ setara dengan //
Dari spesifikasi POSIX (penekanan ditambahkan):
3.267 Nama Jalur
String yang digunakan untuk mengidentifikasi file. Dalam konteks
POSIX.1-2008, nama jalur mungkin dibatasi hingga {PATH_MAX} byte, termasuk
byte null yang mengakhiri. Ini memiliki awal opsional<slash>karakter, diikuti oleh nol atau lebih nama file yang dipisahkan oleh<slash>karakter. Sebuah pathname secara opsional dapat berisi satu atau lebih<slash>. tambahan karakter. Beberapa<slash>. yang berurutan karakter
dianggap sama dengan satu<slash>, kecuali untuk kasus
tepat dua<slash>. di depan karakter.
Dan:
4.12 Resolusi Pathname
…
Nama path yang terdiri dari satu<slash>akan menyelesaikan ke direktori root
proses. Nama path nol tidak akan berhasil
diselesaikan. Jika nama jalur dimulai dengan dua<slash>yang berurutan karakter,
komponen pertama setelah<slash>. utama karakter dapat
ditafsirkan dengan cara yang ditentukan implementasi, meskipun lebih dari
dua<slash>utama karakter akan diperlakukan sebagai satu<slash>karakter.
Untuk diskusi yang bagus tentang pengecualian (cygwin dan direktori) lihat:Bagaimana cara linux menangani beberapa pemisah jalur berurutan (/home////username///file)?