Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Mengapa pautan keras Linux tidak boleh memautkan direktori?
Sebab: Memperkenalkan sambungan keras ke direktori mungkin memperkenalkan gelung dalam direktori Apabila merentasi direktori, sistem akan jatuh ke dalam gelung tak terhingga, yang akan mengakibatkan ketidakupayaan untuk mengesan direktori yang diakses. Struktur direktori Linux ialah pepohon dengan "/direktori" sebagai nod akar Jika pautan keras tersuai dibenarkan, ia berkemungkinan memusnahkan struktur ini dan juga membentuk gelung apabila gelung terbentuk, arahan yang perlu melintasi pokok direktori akan , membawa maut. Oleh itu, untuk mengelakkan kerosakan struktur pokok direktori, Linux tidak membenarkan pengguna menyesuaikan pautan keras pada direktori.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
Pautan keras LINUX tidak boleh dipautkan ke direktori kerana pengenalan pautan keras ke direktori mungkin memperkenalkan gelung dalam direktori Apabila direktori dilalui, sistem akan jatuh ke dalam gelung tak terhingga, yang akan mengakibatkan ketidakupayaan untuk mencari direktori.
Dalam sistem Linux, setiap fail (direktori juga merupakan fail) sepadan dengan struktur inode Struktur data inode mengandungi maklumat tentang jenis fail (direktori, fail biasa, fail pautan simbolik, dll.), dan juga Maksudnya, sistem pengendalian boleh menentukan pautan simbolik apabila melintasi direktori Memandangkan ia boleh menentukan pautan simbolik, sudah tentu ia boleh mengambil beberapa langkah untuk mengelakkan memasuki gelung yang berlebihan Sistem berhenti melintasi selepas menemui 8 simbolik pautan berturut-turut Inilah sebabnya sambungan simbolik direktori tidak memasuki gelung tak terhingga. Walau bagaimanapun, untuk sambungan keras, disebabkan oleh batasan struktur data dan algoritma yang digunakan dalam sistem pengendalian, pada masa ini adalah mustahil untuk menghalang gelung tak terhingga ini.
Sifat sambungan keras dalam linux
Sebelum membincangkan masalah, mari kita bincangkan tentang sifat sambungan keras.
Pautan keras sebenarnya ialah kandungan blok yang ditunjuk oleh inod direktori. Setiap rekod dalam blok direktori ialah pautan keras. Direktori itu sendiri ialah sejenis fail dalam Linux (fail direktori, simbol d), dan kandungan fail "fail direktori" ialah pautan keras.
Contohnya (perhatikan perubahan dalam bilangan sambungan direktori dalam gambar):
Rajah sebelum dan selepas perubahan dalam bilangan tmp sambungan direktori adalah seperti berikut (garis merah menunjukkan sumber nombor sambungan) ):
Ia boleh didapati daripada contoh di atas bahawa bilangan pautan keras apabila direktori yang baru dibuat ialah 2, satu daripadanya berasal dari direktori induk dan satu lagi daripada dirinya sendiri.". Jika anda mencipta subdirektori untuk direktori, bilangan sambungan keras akan berubah daripada 1 kepada 3. Ini kerana terdapat sambungan ".." tambahan daripada subdirektori.
Sesetengah orang mungkin bertanya pada ketika ini, bukankah ini bermakna pautan keras tidak boleh digunakan untuk direktori? Apa yang berlaku dengan demo di atas?
Satu konsep perlu dijelaskan di sini, "pautan keras tidak boleh digunakan untuk direktori", yang bermaksud pautan keras ke direktori tidak boleh disesuaikan oleh pengguna, tetapi hanya boleh diselenggara oleh sistem pengendalian. Malah, direktori dan pautan keras tidak dapat dipisahkan dan disepadukan antara satu sama lain. "Pautan keras" itu sendiri sebenarnya adalah cara direktori mengekalkan nama subfail & nama subdirektorinya.
Mimpi ngeri sambungan keras tersuai: Gelung
Selepas bercakap tentang sifat sambungan keras, kita boleh kembali ke topik hari ini: mengapa tidak Benarkan pemautan keras bagi direktori yang ditentukan pengguna?
Kami tahu bahawa struktur direktori Linux ialah pokok dengan "/direktori" sebagai nod akar Jika pautan keras tersuai dibenarkan, ia berkemungkinan memusnahkan struktur ini atau membentuk gelung, seperti arahan berikut Jika ia boleh dilaksanakan dengan jayanya:
Setelah gelung terbentuk, ia membawa maut bagi arahan yang perlu melintasi direktori pokok (contohnya, dari atas ke bawah Perintah du yang melintasi dari bawah ke atas, dan perintah pwd yang melintasi dari bawah ke atas). Oleh itu, untuk mengelakkan kerosakan struktur pokok direktori, Linux tidak membenarkan pengguna menyesuaikan pautan keras pada direktori. Sebab pautan lembut tidak mempunyai sekatan ini ialah fail pautan lembut mempunyai jenis fail khas yang boleh dikenali oleh sistem, manakala "fail pautan keras" tidak berbeza daripada fail biasa sistem dan tidak boleh dinilai.
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci Mengapa pautan keras Linux tidak boleh memautkan direktori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!