छुपी हुई फ़ाइलों या निर्देशिकाओं सहित किसी निर्देशिका को पुनरावर्ती में कैसे ले जाएं


37

छिपे हुए निर्देशिका या फ़ाइलों पर पुनरावर्ती ध्वज के साथ गला हुआ लगता है काम नहीं करेगा। क्या इसके लिए कोई सरल उपाय है?

जवाबों:


56

मुझे पूरा यकीन है कि -Rझंडा काम करता है - यह हमेशा मेरे लिए वैसे भी होता है। क्या काम नहीं करेगा, और मेरी कमांड लाइन के उपयोग में मुझे जल्दी क्या मिला, *छिपी हुई फ़ाइलों / निर्देशिकाओं के साथ निर्देशिका में उपयोग कर रहा है। इसलिए कर रहे हैं

$ chown -R /home/user/*

छिपी हुई फ़ाइलों और निर्देशिकाओं को नहीं करेगा। हालाँकि अगर आप इसका पालन करते हैं

$ chown -R /home/user/.[^.]*

फिर आप सभी छिपी हुई फाइलें करेंगे, (लेकिन ऐसा नहीं करेंगे .या ..जैसा /home/user/.*करेंगे)। यह सब कहने के बाद, मैं उम्मीद करूंगा

$ chown -R /home/user

सभी छिपी हुई फ़ाइलों और निर्देशिकाओं को अंदर लाने के लिए /home/user- हालांकि वह निश्चित रूप से निर्देशिका की अनुमतियों को भी बदल देगा, जो कि आप का इरादा नहीं हो सकता है।


3
एक कर chownनिर्देशिका पर दुष्प्रभाव यह है कि आप निर्देशिका खुद के साथ-साथ इसकी सामग्री है, जो या नहीं हो सकता है हो सकता है कि आप क्या चाहते के सभी पर अनुमतियों को बदलने की है।
wfaulk

मेरे लिए A + एक आकर्षण की तरह काम करता था।
SuperFamousGuy

मैंने कोशिश की chown nginx:nginx -R /path/to/.[^.]*और यह केवल छिपी हुई फ़ाइलों को .dot करने के लिए स्वामित्व बदल गया। सब नहीं।
पाथ्रोस

@wfaulk जैसा कि @ Hamish Downer द्वारा उल्लेख किया गया था, आपको सभी फ़ाइलों को प्राप्त करने के लिए दोनों का *पालन करना चाहिए और उसका पालन करना चाहिए .[.^]*
God_is_love

9

मेरा मानना ​​है कि इसके लिए निम्नलिखित कमांड को काम करना चाहिए

chown -hR userid:usergroup /nameofdirectory/nameofsubdir/

1
- किसी भी संदर्भित फ़ाइल के बजाय प्रतीकात्मक लिंक को प्रभावित करें (केवल सिस्टम पर उपयोगी है जो सिमलिंक के स्वामित्व को बदल सकता है)
R. van Twisk

8

"chown -R" काम करता है, लेकिन एक विकल्प खोज का उपयोग करेगा।

 find /path/to/dir -exec chown USER {} \;

5
ध्यान दें कि GNU के साथ, के +बजाय ;टर्मिनेटर के रूप में उपयोग करना -exec अधिक कुशल होगा क्योंकि यह फ़ाइल / निर्देशिका के बजाय एक कांटा की न्यूनतम आवश्यक संख्या का उपयोग करेगा / निर्देशिका
स्टू

3

आप dotglobअस्थायी रूप से विस्तार करने के लिए विशेषता बदल सकते हैं । फ़ाइलें और फिर इसे वापस लाएं।

shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob

यहाँ पर अधिक dotglobपाया जा सकता है


2

के लिए लूप के साथ का उपयोग ls -Aविकल्प, हम सब छिपा फ़ाइलों पा सकते हैं और निर्देशिका को बाहर .और ..और फिर सभी छिपा फ़ाइलों और निर्देशिका के लिए स्वामित्व बदल जाते हैं।

for i in `ls -A | grep "^\."`;do chown -R user:group $i;done

के xargsसाथ विकल्प का उपयोग करेंls -A

ls -A | grep "^\." | xargs chown user:group

अधिक जानकारी के लिए यहां क्लिक करें और मेरी साइट पर जाएं


1

इसके अलावा, अगर आप मेरे जैसे हैं, तो आप संभवतः वर्तमान निर्देशिका से ही चलेंगे। मैं इसे इस तरह से चलाने का आदी था chown rails.rails -R *:। बस तारांकन चिह्न को एक डॉट (वर्तमान निर्देशिका के लिए छोटा) में इस तरह बदलना: chown rails.rails -R .सभी छिपी निर्देशिकाओं में लाता है।


2
साइड इफेक्ट के साथ कि आप वर्तमान निर्देशिका के साथ-साथ इसकी सभी सामग्रियों की अनुमतियों को बदलते हैं, जो आप चाहते हैं या नहीं हो सकता है।
wfaulk

1

chownछिपी हुई फ़ाइलों और निर्देशिकाओं के साथ काम करेगा। निम्नलिखित उदाहरण में, हम सभी फ़ाइलों के लिए उपयोगकर्ता और समूह के स्वामित्व को बदल देंगे ~/some/folderसभी फाइलों में स्तर और नीचे सभी छिपी हुई फाइलें (जैसे .bashrc, .profileआदि) और फ़ोल्डर्स शामिल ~/some/folderहैं। विशेष रूप से ध्यान दें कि हम स्वामित्व को बदलना नहीं चाहते हैं ~/some, और इसलिए हम फ़ाइल ~/some/..को स्वामित्व परिवर्तन से बाहर कर देंगे ।

$ cd ~/some/folder 
$ sudo chown -R usrname:grpname . 
$ 

इसने मेरे लिए काम किया
klor

0

वर्तमान उपयोगकर्ता के लिए वर्तमान निर्देशिका और उपनिर्देशिकाओं में सभी फ़ाइलों को चेस करने के लिए;

find . -exec chown $(whoami) {} \;

या यदि उपयोगकर्ता प्रतिबंधित अनुमतियों के कारण कुछ फ़ाइलों को चांस नहीं दे सकता है;

sudo find . -exec chown $(logname) {} \;

-2

आप कुछ ऐसा कर सकते थे

for i in `ls -A`;do chown -R user:group $i;done

-A( राजधानी ए) यह शामिल नहीं के रूप में महत्वपूर्ण है '।' तथा '..'


यह वर्तमान निर्देशिका में केवल फ़ाइलों और उपनिर्देशिकाओं को बदलेगा, न कि किसी निम्न स्तर को। (जो ओपी चाहता है वह हो सकता है।) यह उन स्थानों में रिक्त स्थान (या टैब) के साथ फ़ाइलनाम और निर्देशिका नामों पर भी टूट जाएगा।
वफ़ाकुल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.