Apakah ada batasan jumlah hardlink untuk satu file? Apakah ini ditentukan di mana saja? Apa batasan aman untuk Linux? Dan untuk apa sistem POSIX lainnya?
Apakah ada batasan jumlah hardlink untuk satu file? Apakah ini ditentukan di mana saja? Apa batasan aman untuk Linux? Dan untuk apa sistem POSIX lainnya?
Jawaban:
Posix mensyaratkan bahwa sistem operasi memahami konsep tautan keras tetapi bukan bahwa tautan keras dapat benar-benar digunakan dalam keadaan tertentu. Anda dapat mengetahui berapa banyak tautan keras yang diizinkan di lokasi tertentu (ini dapat bervariasi menurut jenis sistem file) dengan menelepon . Batas minimum ( ) adalah 8, tetapi ini agak tidak berarti karena dapat melaporkan banyak kesalahan lainnya (izin ditolak, disk penuh, ...).pathconf(filename, _PC_LINK_MAX)
_POSIX_LINK_MAX
link()
The stat
toko struktur link yang menghitung di bidang jenis nlink_t
, sehingga jenis bidang ini memberikan batas atas pada sistem Anda. Tapi ada peluang bagus Anda tidak akan pernah bisa mencapai sejauh itu: itu umum untuk memiliki 32-bit nlink_t
tetapi hanya 16 bit di banyak sistem file (grep cepat dalam sumber Linux menunjukkan bahwa ext [234], NTFS, UFS dan XFS menggunakan jumlah tautan 16-bit dalam struktur data kernel).
Ini tergantung sistem file.
batas ext2 / 3/4 adalah 65k tautan
baris sumber ext4 643, struct ext4_inode
->__le16 i_links_count
Melihat format disk struktur inode ext3 di sumber kernel linux (* include / linux / ext3_fs.h *) yang mencantumkan jumlah tautan sebagai angka 16 bit
struct ext3_inode {
... snip ...
__le16 i_links_count; /* Links count */
}
Saya kira itu berarti bahwa filesystem ext3 dapat memiliki hingga 65535 tautan.
Saya belum memeriksa nilai untuk sistem file lain.