मैं एक साधारण बैश for
पाश बनाकर सभी सबडायरेक्टरियों की अनुमतियां परिवर्तित करने की कोशिश कर रहा हूँ है:खोज परिणामों का उपयोग करना जब निर्देशिका उनके नाम में रिक्त स्थान
for dir in `find . -type d`; do chmod 755 "$dir"; done
तथापि, यह गैर-मौजूद निर्देशिका के बारे में शिकायत। लूप से निर्देशिका नामों को प्रिंट करके (chmod 755 "$dir"
को echo "$dir"
के साथ बदलकर) मैंने काम किया है कि समस्या तब होती है जब किसी निर्देशिका में उसके नाम पर रिक्त स्थान होता है। क्या होता है कि for
पाश find
के प्रत्येक न्यूलाइन और स्थान पर परिणामों को विभाजित करता है।
मैं किसी भी तरह से इसे परिणामों को विभाजित करना चाहता हूं, केवल न्यूलाइन के अनुसार और रिक्त स्थान को अनदेखा करें। डबल कोट्स को यह सुनिश्चित करना चाहिए कि स्ट्रिंग chmod
तक एक तर्क के रूप में पहुंच जाए। मैं विभाजन कैसे बदलूं?
ठीक है, यह वाकई अच्छा है :)। लेकिन तर्कों की सूची बहुत लंबी है, लेकिन मैंने कुछ आदेशों को घबराहट देखा है। क्या ऐसा कुछ है जिसे xargs -n पैरामीटर का उपयोग करके हल किया जा सकता है? –
इसके अलावा, क्या होता है जब आदेश एक समय में केवल एक तर्क लेता है?मुझे एहसास है कि यह मुख्य प्रश्न से थोड़ा बड़ा है, लेकिन फिर भी। –
तर्कों की # पर सीमा आमतौर पर कर्नेल की निष्पादन सीमा होती है, जो * xargs * चेक करता है और एक से अधिक बार कमांड चलाकर स्वचालित रूप से संभालता है। यह एक कमांड को भी संभाल सकता है जो वास्तव में केवल 1 की अनुमति देता है, उपयोग करें: * xargs -n 1 * – DigitalRoss