मेरे पास अलग-अलग फ़ोल्डर्स में बहुत सारे रार अभिलेखागार हैं और उन्हें सभी को अनपॅक करना चाहते हैं।फ़ाइलों को ढूंढें और आदेश निष्पादित करें
मुझे यह पता लगाने में परेशानी हो रही है कि इसे कैसे किया जाना चाहिए और कुछ मदद की ज़रूरत है।
#!/bin/bash
## For all inodes
for i in pwd; do
## If it's a directory
if [ -d "$i" ] then
cd $i
## Find ".rar" file
for [f in *.rar]; do
./bin/unrar x "$f" # Run unrar command on filename
cd ..
done
done
done
मैं बैश स्क्रिप्टिंग से परिचित नहीं हूं और मुझे लगता है कि कोड एक से अधिक बार गलत है। लेकिन मुझे लगता है कि यह बुनियादी संरचना
'ढूंढ', जिस तरह से मैंने इसे पोस्ट किया है, आपको * बहुत सारी खुली फ़ाइल त्रुटियों से रोक देगा *। मुझे लगता है कि आपने 'foo * ढूंढें' जैसे कुछ किया है, जिसका अर्थ है कि आपने निर्देशिका नाम के लिए एक ग्लोब का उपयोग किया है (या कुछ और जिसे मुझे पता नहीं है)। अपनी विशेष समस्या के बारे में एक प्रश्न पूछने के लिए स्वतंत्र महसूस करें। लिंक को यहां प्रश्न पर छोड़ दें और मुझे वहां एक नज़र आएगी। – hek2mgl
समस्या स्पष्ट रूप से 'i के लिए 'ls/var/cpanel/users /';' है। यह 'i/var/cpanel/users/*' – hek2mgl
@Luka के लिए होना चाहिए 'समस्या * '.jpg" '- जो अनजान है, इसे देखें। यह उस फ़ोल्डर में सभी जेपीजी फ़ाइलों में विस्तारित होगा जो उस त्रुटि को ट्रिगर करता है। जिस आदेश को आप ढूंढ रहे हैं वह है: 'i/var/cpanel/users/* में; करो sudo -H -u "$ i" ढूंढें "/ home/$ i/public_html" -type f -name '* .jpg' -execdir jpegoptim {} \; ; किया गया – hek2mgl