ओएस एक्स पर "लॉक" फ़ाइलों को अनलॉक करने के लिए कमांड


96

मैंने बहुत सारी रीड-ओनली फाइल्स को विंडोज सिस्टम से अपने मैक पर कॉपी किया। "गेट इन्फो" का उपयोग करके प्रत्येक फ़ाइल के लिए जानकारी देखने पर, मैं देख सकता हूं कि वे बंद हैं। मैं कुछ फ़ाइलों को कॉपी करने के लिए एक बैश स्क्रिप्ट लिख रहा हूं और मुझे एक त्रुटि मिल रही है जो कहती है "ऑपरेशन की अनुमति नहीं है" इसलिए, पहले मुझे फाइलों को अनलॉक करने की आवश्यकता है। चूंकि मैं विंडोज सिस्टम से फाइलें अक्सर खींच रहा हूं, इसलिए मैं चाहता हूं कि मेरी स्क्रिप्ट इन फाइलों को अनलॉक करे।

OSX पर "लॉक्ड" फाइलों को अनलॉक करने के लिए टर्मिनल कमांड क्या है?

जवाबों:


136

उन फ़ाइलों को अनलॉक करने के लिए जिनका आप उपयोग कर सकते हैं:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags फ़ाइलों / फ़ोल्डरों पर "लॉक" जैसे झंडे बदलें
  • -R = पुनरावर्ती या सब कुछ के लिए और निर्दिष्ट निर्देशिका के भीतर निर्देशिका का पालन करें
  • nouchg = मतलब फ़ाइल को बदला जा सकता है
  • /PATH/= बेशक उन फ़ाइलों के लिए पथ है जिन्हें आप बदलना चाहते हैं। जैसे कुछ: ~/Sites/mysite/directory/with/locked/files/काम करता है।

1
लगता है जैसे मैंने समाधान पाया जैसे आप जवाब दे रहे थे। मैंने यह भी सीखा कि -R पुनरावर्ती के लिए है। इसलिए, वर्तमान निर्देशिका में सभी फ़ाइलों को अनलॉक करने के लिए <br/> chflags nochg * <br/> का उपयोग करें और केवल एक फ़ाइल को बदलने के लिए <br/> chflags nouchg onefile.txt देखें: mehtanirav.com/2009/04/16/recursively -unlock-files-on-mac-os-x
माइकल प्रेस्कॉट

3
एक और प्रासंगिक ध्वज है schgजो सिस्टम अपरिवर्तनीय ध्वज है (देखें डेवलपर sudo chflags noschg PATH/TO/LOCKED/FILE
एंडी मैज

1
फ़ाइलों पर /bin/ls -lO /path/to/filemacOS देखने के लिए उपयोग करें flags। MacOS ' ls' कमांड को पूर्ण पथ पर ध्यान दें । यदि आपको GNU Coreutils स्थापित है, तो इसकी आवश्यकता है।
टोनी बर्गांस्की

15

आप इसका उपयोग भी कर सकते हैं SetFile -a l, भले ही यह वही काम करे chflags nouchg:

SetFile -a l file.ext

-a lलॉक की गई विशेषता के लिए बिट को अनसेट करता है। आप कमांड लाइन टूल्स पैकेज को Xcode की प्राथमिकताओं से या developer.apple.com/downloads से डाउनलोड करके SetFile स्थापित कर सकते हैं ।


यह एक ऐसी विधि है जो मेरे लिए macOS Sierra पर विंडोज मशीन से कॉपी की गई कुछ फाइलों के साथ काम करती है। मैंने इस्तेमाल किया: सेट-फ़ील-~ ~ / दस्तावेज़ / Arduino / नमूने / *
callisto

14

यदि आप संपूर्ण निर्देशिका खोजना चाहते हैं और सभी फ़ाइलों को अनलॉक करना चाहते हैं तो यह उपयोगी है।

cdनिर्देशिका के लिए टर्मिनल में

यह कमांड ढूंढती है और उनमें से एक सूची छापेगी

$ find . -flags uchg

यह कमांड उन्हें अनलॉक करता है

$ find . -flags uchg -exec chflags nouchg {} \;

आप पहली कमांड का उपयोग यह जांचने के लिए कर सकते हैं कि दूसरी कमांड चलाने के बाद सभी फाइलें अनलॉक हो गई हैं, वॉइलिया!


1
हालांकि यह काम करता है, यह बड़ी संख्या में फ़ाइलों के लिए बेहद धीमा हो सकता है क्योंकि यह प्रत्येक फ़ाइल के लिए एक नई प्रक्रिया शुरू करता है।
रिचर्ड वेट

0

वास्तव में दो लॉक फ्लैग हैं जो किसी फ़ाइल पर सेट किए जा सकते हैं: uchgऔर schg। एक फ़ाइल जिसमें uchgध्वज सेट है वह सामान्य उपयोगकर्ताओं द्वारा अपरिवर्तनीय है, लेकिन यह सिस्टम द्वारा परिवर्तन योग्य है। एक फाइल जिसमें schgझंडा सेट है, वह किसी के द्वारा भी अपरिवर्तनीय है। दोनों झंडे एक ही समय में सेट किए जा सकते हैं।

यह देखने के लिए कि फ़ाइल पर कौन से झंडे लगाए गए हैं, उपयोग करें

ls -lO FILE

यह एक कैपिटल लेटर ओ है, शून्य नहीं।

किसी फ़ाइल को अनलॉक करने के लिए, आपको निष्पादित करना होगा

chflags nouchg,noschg FILE

जैसे कि दोनों झंडे लगाए गए थे और आप उनमें से केवल एक को हटाते हैं, यह अभी भी बंद रहेगा।

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