खोने के बिना लिनक्स पर सहेजती है मैं एक पर्ल-आधारित फ़ाइल सिंक्रनाइज़ेशन टूल पर काम कर रहा हूं। यह फ़ाइलों को एक अस्थायी निर्देशिका में डाउनलोड करता है (जो वास्तविक फाइल के रूप में एक ही फाइल सिस्टम पर होने की गारंटी है) और फिर अस्थायी फ़ाइलों को पुरानी जगहों पर स्थानांतरित करता है, मेटाडेटा को अनुमतियों, स्वामित्व और एसीएल को संरक्षित करता है। मैं सोच रहा हूं कि लिनक्स पर आखिरी कदम कैसे प्राप्त किया जाए।परमाणु फ़ाइल मेटाडाटा
मैक ओएस एक्स पर, कम से कम सी में, मैं exchangedata
फ़ंक्शन का उपयोग करूंगा। यह तर्क के रूप में दो फ़ाइल नाम लेता है और सभी मेटाडेटा (एमटाइम के अलावा) को छोड़कर, उनकी सामग्री को स्वैप करता है। यह गारंटी देता है कि ऑपरेशन परमाणु है- सभी पाठक या तो पुरानी फ़ाइल या नया देखेंगे, कभी भी बीच में कुछ नहीं। दुर्भाग्यवश, मुझे नहीं लगता कि यह लिनक्स पर उपलब्ध है।
मुझे पता है कि rename
परमाणु रूप से चलता है, लेकिन यह मेटाडेटा को संरक्षित नहीं करता है। दूसरी तरफ, मैं फ़ाइल खोल सकता हूं और डेटा को नए की सामग्री के साथ ओवरराइट कर सकता हूं, जो सभी मेटाडेटा को सुरक्षित रखेगा लेकिन परमाणु ऑपरेशन नहीं होगा। इस समस्या से निपटने के लिए कोई सुझाव?
आप किस तरह के मेटाडेटा को संरक्षित करने के लिए इतना कठिन काम कर रहे हैं? यूनिक्स में मालिक/समूह/सभी के लिए मालिक/समूह और अनुमतियां हैं। क्या यह इतना बदलता है कि यह आपके लिए एक मुद्दा होगा? –
कई लिनक्स फाइल सिस्टम विस्तारित विशेषताओं और एसीएल का भी समर्थन करते हैं, और एक अप्रतिबंधित उपयोगकर्ता के पास अस्थायी फ़ाइल के उपयोगकर्ता और समूह को पुराने व्यक्ति को बदलने की आवश्यक अनुमति नहीं हो सकती है। असल में, यहां बहुत सारी सूक्ष्मता शामिल है, और मैं सोच रहा हूं कि इसे संभालने के लिए कुछ पहले से मौजूद है या नहीं। –