मैक ओएस एक्स, ls
और chmod
पर ACL अनुमतियों को संभालने के लिए कुछ अतिरिक्त सुविधाएं हैं जो डिफ़ॉल्ट पॉज़िक्स अनुमतियों के शीर्ष पर ओएस परतें हैं। I have some permission problems that need fixing, और I wrote a script इन समस्याओं को पैच करने में सहायता के लिए जब तक कि ऐप्पल उस बग को ठीक न करे। यहाँ कोड है कि ls
पार्स ACL कदम उठाएं:क्या एलएस आउटपुट पार्सिंग की तुलना में रूबी में एसीएल पढ़ने का बेहतर तरीका है?
result = `#{Escape.shell_command(["ls", "-led", file])}`
if result.empty?
# ls error...
else
@acl = result.split("\n")[1..-1].collect do |ace|
ace = ace.split(": ", 2)
ace[0] = ace[0].to_i
ace
end
# acl processing code...
end
मैं escape मणि जोड़ा है, लेकिन यह अभी भी लगभग एक ही कोड है।
लेकिन मुझे पता है कि एक स्क्रिप्ट में ls
को पार्स करने के लिए सामान्य रूप से यह एक बुरा विचार है, तो क्या फ़ाइल से ACL अनुमतियों को पढ़ने का बेहतर तरीका है?
मैं इक्के और उनकी सूचकांक लिपि में बाद में chmod
साथ उपयोग करने की आवश्यकता:
system("chmod -a# #{index} \"#{file}\"")
'ls -led' ओएस एक्स उन्नत विशेषताओं हो जाता है? मुझे नहीं लगता कि रूबी इन विशेषताओं के लिए अंतर्निहित समर्थन रखेगी। @Swanand: मोड केवल सामान्य यूनिक्स अनुमति बिट्स से संबंधित है, है ना? – Nemo157
@ निमो 157 हां, माफ करना, मैं भूल गया था, '-ई' विकल्प शायद ओएस एक्स के लिए अद्वितीय है। यह मानक' -l' आउटपुट – Tim