क्या एक फ़ाइल के लिए हार्डलिंक की सीमा है?


24

क्या एक फ़ाइल के लिए हार्डलिंक की संख्या की सीमा है? क्या यह कहीं भी निर्दिष्ट है? लिनक्स के लिए सुरक्षित सीमाएँ क्या हैं? और अन्य POSIX सिस्टम के लिए क्या?

जवाबों:


16

पॉज़िक्स के लिए आवश्यक है कि ऑपरेटिंग सिस्टम हार्ड लिंक की अवधारणा को समझे लेकिन यह नहीं कि हार्ड लिंक वास्तव में किसी विशेष परिस्थिति में उपयोग किया जा सकता है। आप यह पता लगा सकते हैं कि किसी विशेष स्थान पर कितने हार्ड लिंक की अनुमति है (यह फाइलसिस्टम प्रकार से भिन्न हो सकता है) कॉल करके । न्यूनतम सीमा ( ) 8 है, लेकिन इस बल्कि व्यर्थ के रूप में है कई अन्य त्रुटियों वैसे भी रिपोर्ट कर सकते हैं (अनुमति नहीं दी, डिस्क भरा हुआ, ...)।pathconf(filename, _PC_LINK_MAX)_POSIX_LINK_MAXlink()

statसंरचना भंडार लिंक प्रकार के एक क्षेत्र में गिनती nlink_t, तो इस क्षेत्र के प्रकार आपके सिस्टम पर एक ऊपरी सीमा देता है। लेकिन एक अच्छा मौका है कि आप कभी भी उस तक नहीं पहुंच पाएंगे: 32-बिट के लिए आम है, nlink_tलेकिन कई फाइल सिस्टम में केवल 16 बिट्स (लिनक्स स्रोत में एक त्वरित grep से पता चलता है कि [234], NTFS, UFS और XFS कर्नेल डेटा संरचनाओं में 16-बिट लिंक काउंट का उपयोग करता है)।


पूरक के रूप में: BTRFS 8 बिट लिंक गिनती का उपयोग करता है।
मैकिज पीचोटका

@, उसी निर्देशिका में हार्ड लिंक के लिए 8-बिट लिंक गिनती, लेकिन कुल मिलाकर 32-बिट गिनती इस ब्लॉग पोस्ट के अनुसार /
गाइल्स 'एसओ- बुराई को रोकें'

11

यह फाइल सिस्टम पर निर्भर है।

ext2 / 3/4 की सीमा 65k लिंक है

ext4 स्रोत लाइन 643, struct ext4_inode->__le16 i_links_count


1
वास्तविक सीमा 65534 है। अंतिम काउंटर का उपयोग नाम बदलने () सिस्टम कॉल में एक क्षणिक के लिए किया जाता है।
यहोशू

4
इससे भी कम (समान ext4.h में पाया गया): / * फ़ाइल की लिंक की अधिकतम संख्या * / #define EXT4_LINK_MAX 65000
पोल्टो

10

Linux कर्नेल स्रोतों में ext3 इनोड संरचना डिस्क प्रारूप को देखते हुए (* / linux / ext3_fs.h * शामिल करें) जो लिंक की सूची को 16 बिट संख्या के रूप में सूचीबद्ध करता है

struct ext3_inode {
    ... snip ...
    __le16  i_links_count;  /* Links count */

}

मुझे लगता है कि इसका मतलब है कि एक ext3 फाइलसिस्टम में 65535 लिंक हो सकते हैं।

मैंने अन्य फाइल सिस्टम के लिए मानों की जाँच नहीं की है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.