Kenapa '.' dipilih untuk mewakili direktori saat ini dan '..' untuk direktori induk?

Jawaban:

16

Saya ragu Anda akan menemukan jawaban yang sama menariknya dengan pertanyaan tilde!

Saya tidak ada di sana, tapi .. seperti ellipsis (...), yang masuk akal dalam konteks seperti cd ../../../there. Juga, dan terutama melihat keyboard terminal kamu dari case tilde, tidak ada banyak karakter yang memenuhi syarat untuk tujuan ini. Anda juga tidak perlu bergeser .. Itu sempurna.

Fakta bahwa dot awalan digunakan untuk file tersembunyi mungkin menjadi alasan lain. File tersembunyi tidak terdaftar secara default oleh alat-alat seperti ls, jadi tidak ada dasarnya redundan .dan ... Redundan dalam arti bahwa tidak ada gunanya mempertimbangkannya bersama dengan file lain - mereka tentu berguna sebaliknya.

Ternyata saya mungkin memilikinya mundur ... dari wikipedia :

Gagasan bahwa nama file diawali dengan '.' harus disembunyikan adalah hasil dari bug perangkat lunak di masa-masa awal Unix. Saat istimewa '.' dan entri direktori '..' ditambahkan ke sistem file, diputuskan bahwa perintah ls tidak boleh menampilkannya. Namun, program ls ditulis secara keliru untuk mengecualikan file apa pun yang namanya dimulai dengan '.', Bukan hanya file bernama '.' atau '..'.

Ini ternyata berguna saat pemrograman; karena sistem tidak termasuk. dan .. dalam menanggapi readdir()mengetik perintah (dan shell gumpalan), mengabaikannya dan file tersembunyi dapat diselesaikan dengan cara yang sama.

Sebuah pendapat yang berbeda tentang itu nilai yang digunakan adalah dalam referensi untuk kutipan wikipedia. Tentu saja, keseluruhan cerita bisa menjadi apokrip ... agak sulit untuk percaya bahwa, misalnya, Dennis Ritchie menganggap hanya memeriksa karakter pertama akan baik-baik saja.

Saya tidak setuju dengan vis penulis, akan lebih baik untuk meletakkan file konfigurasi tersembunyi di direktori mereka sendiri daripada memberi mereka awalan universal. Awalannya jauh lebih fleksibel, memungkinkan arahan dalam-pohon seperti .gitignoredan .htaccess. Saksikan bahwa file-file semacam itu juga muncul bersama ketika diurutkan secara leksikografis - jadi mungkin ini memang sengaja .

goldilocks
sumber
3

Sebagian besar jawaban yang sama dengan @Panos di stackoverflow :

Singkatnya, itu berevolusi dari ddan dd( directory dan directory's directory) yang dibuat oleh pengguna dengan tangan. dmenjadi dot , dan orang-orang .dan ..diciptakan pertama kali oleh mkdirutilitas (setuid setelah menghubungkan direktori tidak lagi diperbolehkan oleh belaka pengguna) dan kemudian oleh mkdir system call.

Kutipan dari wawancara dengan Ken Thompson (1989-09-06):

MSM : Tetapi bagi pengguna itu akan terlihat kurang lebih sama dengan hierarki direktori.

Thompson : Tidak, yang pertama adalah Dirjen. Bahkan, itu bahkan tidak asiklik. Jika Anda memahami sistem file UNIX, itu .... ada daftar-I, yang merupakan definisi dari semua file pada sistem. Dan kemudian beberapa dari file-file itu, adalah direktori yang hanya berisi nama dan nomor-I. Tidak ada apapun di sana yang membatasi ke pohon. Jadi sebenarnya tidak, tidak hierarkis sama sekali.

MSM : Begitu .

Thompson : Dan kami tidak menahannya ke pohon. Kami bereksperimen dengan berbagai topologi. Yang akhirnya kami lakukan adalah berubah menjadi konkret dan memaksa topologi yang sebenarnya adalah topologi yang datang dengan konvensi dari sistem itu. ... Setiap kali kita membuat direktori, dengan konvensi kita meletakkannya di direktori lain yang disebut direktori - direktori , yang dd. Namanya adalah dd dan bahwa semua direktori pengguna dan bahkan sebagian besar direktori lainnya, pengguna mempertahankan sistem direktori mereka sendiri, memiliki pointer kembali ke dd, dan dd disingkat menjadi dot-dot, dan dd adalah untuk direktori-direktori. Itu adalah tempat kembali ke tempat Anda bisa mendapatkan ke semua direktori lain dalam sistem untuk menjaga mangkuk spageti ini. Jadi, maksud saya tuff ini dalam berbagai bentuk, yang merupakan konvensi ketat dalam implementasi DG dari kumpulan direktori dan file yang acak ini dipaksa menjadi tipologi yang kami pertahankan. Ketika kami mulai menulis hal-hal seperti sistem file memeriksa program dan hal-hal, mengunci direktori mangkuk spaghetti dan menemukan hal-hal yang terputus-putus, maksud saya Anda akan menghilangkan sesuatu dan tidak pernah mendapatkannya kembali, karena Anda tahu Anda akan kehilangan itu. Masalah-masalah itu menjadi hampir tidak dapat diatasi, dan dalam implementasi selanjutnya kami memaksakan tipologi yang lebih kuat dari itu.

Stéphane Chazelas
sumber