फ़ाइलों को प्रभावित किए बिना पुनरावर्ती 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.