मैंने फ़ाइलों के माध्यम से पुनरावृत्ति करने वाली एक शेल स्क्रिप्ट लिखी और उनकी सामग्री को ऑर्डर किया और नए ऑर्डर को फ़ाइल में वापस सहेजा।
#!/bin/sh
for i in "$@"; do
sort $i -k2 -o $i
done
सॉर्ट की जाने वाली फ़ाइलों को इसके साथ चुना जाता है find
ऐसा आदेश:
find . -regex "<myregex>" -exec ./mysort.sh {} +
मैंने स्क्रिप्ट लिखी और एक मशीन को एक विशिष्ट उपयोगकर्ता के रूप में आज़माया और फिर रूट विशेषाधिकारों का उपयोग करके इसे दूसरी मशीन पर कॉपी कर दिया। तो अब फाइल है chown root:root
के रूप में सभी फ़ाइलों के माध्यम से खोज करने के लिए मैं भटकना है।
इसलिए अब छांटे जाने वाली फाइलें mysort.sh के समान फ़ोल्डर में स्थित हैं और जब मैं खोज को निष्पादित करने की कोशिश करता हूं, तो मैं मिलता
find: "./mysort.sh": Permission denied
मैंने स्क्रिप्ट को एक सबफ़ोल्डर में ले जाने और कमांड को निष्पादित करने का प्रयास किया -exec ./folder/mysort.sh
या इसे एक उच्च स्तरीय फ़ोल्डर में ले जाना और इसके साथ क्रियान्वित करना -exec ../mysort.sh
। मुझे हमेशा अनुमति से वंचित त्रुटियों के विभिन्न रूप मिलते हैं।
उत्तर:
जवाब के लिए 2 № 1जाँच करें कि क्या फाइलसिस्टम आरोहित था noexec
झंडा।
लेकिन आप अपनी स्क्रिप्ट को फिर भी चला सकते हैं bash
:
bash /path/to/mysort.sh