फ़ाइलों को प्रभावित किए बिना पुनरावर्ती chmod निर्देशिकाओं को कैसे लागू करें?


19

जब मैं chmod -Rएक निर्देशिका पर लागू होता है, तो अनुमतियाँ (फ़ाइलों और निर्देशिकाओं) के भीतर सब कुछ बदल जाती हैं। मैं xफ़ाइलों को संशोधित किए बिना निर्देशिकाओं में निष्पादन / खोज ( ) अनुमतियों को कैसे जोड़ सकता हूं ?

जवाबों:


13

आप पा सकते हैं

find ./ -type d -execdir chmod 750 {} +

जहां 750 वह मोड है जिसे आप लागू करना चाहते हैं और "./" वह निर्देशिका है जिसे आप पुन: खोज लेंगे।

संपादित करें : @Gilles और ढूंढें (1) के लिए धन्यवाद , मैंने इसे अतिरिक्त सुरक्षा और प्रदर्शन के लिए संशोधित किया है।


@ धन्यवाद, यह बहुत बार नहीं है कि मैं यूनिक्स टूल के बारे में कुछ नया सीखता हूं :-) यह बहुत बढ़िया है। इसके अलावा, अब खोज प्रलेखन को पढ़ने के लिए , किसी को वास्तव में इसके बजाय -execdir का उपयोग करना चाहिए।
ewindisch

8

इस विशेष मामले में आप Xइसके बजाय उपयोग कर सकते हैं xजो केवल बिट्स को निर्देशिकाओं या फ़ाइलों में जोड़ता है जिनके पास पहले से ही कुछ उपयोगकर्ता (यानी chmod -R +X my_dir) के लिए निष्पादन योग्य बिट सेट है ।

सामान्य (जैसे यदि आप फ़ाइलों को प्रभावित किए बिना सभी निर्देशिकाओं पठनीय बनाना चाहते थे) में, आप या तो इस्तेमाल कर सकते हैं findके साथ -type dया आप zsh (या के साथ बैश 4 उपयोग कर रहे हैं shopt -s globstar) **/(गुजर बिना दोनों ग्लोब -Rध्वज को chmod)।


@ गिल्स: अच्छी बात है, मैंने इसे उत्तर में जोड़ दिया है।
1

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