मैं फ़ाइलों की एक विशिष्ट सूची को कैसे चुन / काट सकता हूँ?


31

मैं कुछ फ़ोल्डर अनुमतियों को सेटअप करने के लिए .sh स्क्रिप्ट लिखना चाहता हूं, लेकिन आश्चर्य है कि क्या मैं कुछ ऐसा चला सकता हूं:

chown -644 ./one;/two;/three

कई बार कॉल करने के बजाए फोल्डर की सूची तैयार करना।

इसके अलावा, फ़ाइलों की सूची को चस्पा करने का एक तरीका होगा, और कुछ अन्य लोगों को बाहर करना, जैसे उदाहरण के लिए:

chown -R -664 ./*;!./cache

मुझे उम्मीद है कि मेरी छद्म कमांड लाइन समझ में आएगी।

जवाबों:


43

लगभग सभी यूनिक्स उपकरण फाइलों की एक सूची को गैर-विकल्प तर्क के रूप में स्वीकार करते हैं। हमेशा की तरह, अलग-अलग तर्कों को अंतरिक्ष से अलग करना होगा:

chown 644 one two three

अपने दूसरे उदाहरण में, यदि आप बैश का उपयोग कर रहे हैं, तो एक सरल

chown -R 644 !(cache)

काफी होगा।

इस दृष्टिकोण को विस्तारित पैटर्न मिलान की आवश्यकता है। यदि यह अक्षम है, तो आप इसे सक्षम कर सकते हैं

shopt -s extglob

देखें: बैश संदर्भ मैनुअल # पैटर्न मिलान


4

Mod-these.txt में फ़ाइल नाम की सूची बनाएं और फिर चलाएं:

chmod g+w `cat mod-these.txt`

या यहाँ दूसरों द्वारा बताई गई विधि का उपयोग करें:

chown 644 one two three

या पहले विकल्प के साथ शहर में जाएं, लेकिन फ़ाइल में प्रत्येक पंक्ति में हेरफेर करें (इस उदाहरण में: "/" (पहले व्हॉट्सएप के साथ) "" ./ "से बदलें:"

chmod g+w `sed 's/ \// .\//' update-writable.txt` 

2

जीत के लिए rexx !

खोज का उपयोग करना सबसे अच्छा तरीका है जो मैं रेगेक्स का उपयोग करने के बारे में सोच सकता हूं जो आपके विशेष शेल या ऐप के भीतर मौजूद हो सकता है। सबसे पहले, मैंने कोशिश की:

touch one&touch two &touch three&find -name "one|two|three" -exec chown -644 {} \;

लेकिन, आप पाएंगे कि पाइप इस मामले में काम नहीं करता है। सीखने के लिए एक और दुःख की बात ... जैसे कि चामोद, चाउन, चगर, एट। अल। मल्टी-फ़ाइल / रेगेक्स चयन / बहिष्कार का समर्थन नहीं करता है ...
मैंने जो समाधान पाया:
/programming/19111067/regex-match-either-string-in-linux-find-command

find \( -name one -o -name two -o -name three \) -exec chown -644 {} \;

इसलिए, जीत के लिए इतना रेगेक्स नहीं है, लेकिन कम से कम हमारे पास एक लाइनर में एक प्रोग्राम के आर्गों में फाइलों की सूची को इंजेक्ट करने का एक तरीका है।

आप ध्यान देंगे कि आपको भागने की ज़रूरत है () मेटा-वर्ण, और प्रत्येक अतिरिक्त नाम के लिए -o पैरामीटर के अतिरिक्त ...

अन्य लिंक और सामग्री जो मुझे आपकी यात्रा के दौरान आपकी रुचि हो सकती है:
विभिन्न tidbits - korn bourne और दोस्तों के नोट्स। - डेव हॉर्नर वेबसाइट

चीयर्स।
--dave


KISS जीत है, यह सरल और बेवकूफ रखें! जटिल चीजों की जरूरत नहीं है जो अभी भी साफ और आसान हो सकती हैं।
बजे अल-मोताफर

2

यदि आप जिन फ़ाइलों को संशोधित करना चाहते हैं, वे एक निर्देशिका में हैं, तो आप उन्हें आवश्यक पैटर्न के साथ ले जा सकते हैं।

उदाहरण के लिए मुझे pwd में सभी डाउनलोड की गई .run फ़ाइलों को निष्पादन योग्य में बदलने की आवश्यकता है:

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