Apakah ada batasan hardlink untuk satu file?


24

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:


16

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_MAXlink()

The stattoko 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_ttetapi 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).


Sebagai suplemen: BTRFS tampaknya menggunakan jumlah tautan 8 bit.
Maciej Piechotka

@Rather, jumlah tautan 8-bit untuk tautan keras di direktori yang sama, tetapi jumlah total 32-bit, menurut posting blog ini /
Gilles 'SO- stop being evil'

11

Ini tergantung sistem file.

batas ext2 / 3/4 adalah 65k tautan

baris sumber ext4 643, struct ext4_inode->__le16 i_links_count


1
Batas aktual adalah 65534. Entri penghitung terakhir digunakan untuk transien dalam pemanggilan nama sistem ().
Joshua

4
Bahkan lebih sedikit (ditemukan dalam ext4.h yang sama): / * Jumlah maksimal tautan ke file * / #define EXT4_LINK_MAX 65000
PoltoS

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.