GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Direktori Baru Memiliki Jumlah Tautan Keras 2 Sebelum Ada yang Ditambahkan?

Katakanlah saya baru saja membuat direktori newDirectory dan kemudian saya melakukan perintah ls -ld. Saya melihat bahwa jumlah tautan keras adalah 2. Apa sebenarnya yang membuat tautan keras 2 dari awal? Juga apakah jumlah subdirektori di direktori saat ini sama dengan jumlah tautan keras – 2?

Jawaban yang Diterima:

Secara historis, sistem file Unix pertama membuat dua entri di setiap direktori:. menunjuk ke direktori itu sendiri, dan .. menunjuk ke induknya. Ini memberikan cara mudah untuk melintasi sistem file, baik untuk aplikasi maupun untuk OS itu sendiri.

Jadi setiap direktori memiliki jumlah tautan 2+n di mana n adalah jumlah subdirektori. Tautan adalah entri untuk direktori itu di induknya, . entri, dan .. entri di setiap subdirektori. Misalnya, ini adalah konten dari subpohon yang di-root di /parent , semua direktori:

/parent
/parent/dir
/parent/dir/sub1
/parent/dir/sub2
/parent/dir/sub3

Kemudian dir memiliki jumlah tautan 5:dir entri di /parent , . entri di /parent/dir , dan tiga .. entri di setiap /parent/dir/sub1 , /parent/dir/sub2 dan /parent/dir/sub3 . Sejak /parent/dir/sub1 tidak memiliki subdirektori, jumlah tautannya adalah 2 (sub1 entri di /parent/dir dan . entri di /parent/dir/sub1 ).

Untuk meminimalkan jumlah casing khusus untuk direktori root, yang tidak memiliki induk yang "benar", direktori root berisi .. entri menunjuk ke dirinya sendiri. Dengan cara ini, juga memiliki jumlah tautan 2 ditambah jumlah subdirektori, 2 adalah /. dan /.. .

Sistem file yang lebih baru cenderung melacak direktori induk dalam memori dan biasanya tidak memerlukan . dan .. ada sebagai entri yang sebenarnya; sistem unix modern yang khas memperlakukan . dan .. sebagai nilai khusus sebagai bagian dari kode sistem file tipe-file-independen. Beberapa sistem file masih menyertakan . dan .. entri, atau berpura-pura meskipun tidak ada yang muncul di disk.

Sebagian besar sistem file masih melaporkan jumlah tautan 2+n untuk direktori terlepas dari apakah . dan .. entri ada, tetapi ada pengecualian, misalnya btrfs tidak melakukan ini.


Linux
  1. Mengapa Tautan Keras Ke Direktori Tidak Diizinkan Di Unix/linux?

  2. Dalam `sementara Ifs=Read..`, Mengapa Ifs Tidak Berpengaruh?

  3. Mengapa '/' Memiliki Entri '..'?

  1. Membuat direktori baru di C

  2. Apakah Python memiliki sinkronisasi?

  3. Mengapa tautan simbolis saya membuat file dan bukan folder?

  1. Mengapa ENOENT berarti Tidak ada file atau direktori seperti itu?

  2. Apa itu GPU Matrox dan mengapa server UNIX universitas saya memilikinya?

  3. Mengapa `xdg-mime query filetype ...` gagal menemukan jenis file baru yang ditambahkan?