MacOS ज़िप फ़ाइलों में Unix फ़ाइल अनुमतियों को कैसे संग्रहीत करता है


4

मैं जावा में एक ज़िप फ़ाइल निकालने की कोशिश कर रहा हूं जो मैक पर फाइंडर की अंतर्निहित संग्रह कार्यक्षमता का उपयोग करके बनाई गई थी। चूंकि ज़िप फ़ाइल में एक एप्लिकेशन बंडल होता है, इसलिए यूनिक्स फ़ाइल अनुमतियाँ, विशेष रूप से निष्पादन योग्य ध्वज को बनाए रखना महत्वपूर्ण है।

खोजक का उपयोग करके ज़िप फ़ाइल निकालते समय, अनुमतियाँ बरकरार रहती हैं। इसलिए मुझे पता है कि वे वहाँ कहीं संग्रहीत हैं।

अब मेरा सवाल यह है: macOS ज़िप फाइल में Unix फ़ाइल की अनुमति कैसे देता है? दुर्भाग्य से मुझे नेट पर इसके बारे में कोई जानकारी नहीं मिली।

जवाबों:


4

अनुमतियाँ उसी तरह संग्रहीत की जाती हैं जैसे वे अन्य यूनिक्स सिस्टम पर हैं, उदाहरण के लिए लिनक्स।

यदि आप ज़िप-फ़ाइल में केंद्रीय निर्देशिका शीर्षलेख को देखते हैं, तो आपके पास ज़िप फ़ाइल में संग्रहीत प्रत्येक फ़ाइल के लिए "बाहरी फ़ाइल विशेषताएँ" नामक फ़ील्ड है। फ़ील्ड हेडर में बाइट 36 पर है और 4 बाइट लंबा है।

उस फ़ील्ड में दो अंतिम बाइट्स में macOS पर फ़ाइल अनुमतियां हैं - सटीक होने के लिए यह अंतिम 9 बिट्स (कम से कम 9 बिट्स) है। उनका अर्थ पारंपरिक यूनिक्स फ़ाइल अनुमतियों की तरह है।


@bmike अपने संपादन के बारे में: ज़िप-फाइलों में अनुमतियों को सहेजना अनिवार्य नहीं है - फाइंडर इसके लिए उपयोगकर्ता इंटरफ़ेस प्रदान नहीं करता है, लेकिन अन्य उपयोगिताओं इसे वैकल्पिक बनाते हैं। अनुमति एन्कोडिंग वास्तव में मूल ज़िप-मानक में नहीं है। इसके अलावा ACL जिप-फाइलों (न ही लिनक्स पर) में संग्रहीत नहीं हैं, इसलिए वे ज़िप-फाइलों के लिए प्रासंगिक नहीं हैं।
jksoegaard

आप सही हैं, विस्तारित विशेषता फ़ील्ड में अनुमतियाँ हैं। संकेत के लिए धन्यवाद!
Oliver Matuschin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.