निर्देशिका को बनाने वाले उपयोगकर्ता को मूल निर्देशिका पर लिखने की पर्याप्त अनुमति नहीं है।
आप इसके बजाय inotify
लिनक्स कर्नेल द्वारा प्रदान किए गए सिस्टम कॉल के परिवार का लाभ उठा सकते हैं , दिए गए डायरेक्टरी में mv
डायरेक्टरी के निर्माण (और वैकल्पिक रूप से ) के लिए देख सकते हैं shop
, यदि डायरेक्टरी (या वैकल्पिक रूप से mv
), rm
डायरेक्टरी बनाई गई है ।
इस मामले में आपके द्वारा आवश्यक यूजरस्पेस प्रोग्राम inotifywait
( inotify-tools
जरूरत पड़ने पर इसे पहले इंस्टॉल करें)।
मान लिया जाये कि निर्देशिका shop
में रहने वाले की जाएगी /foo/bar
निर्देशिका, के लिए एक निगरानी निर्धारित करने की अनुमति /foo/bar/shop
सृजन, और rm
तुरन्त अगर बनाया:
inotifywait -qme create /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
inotifywait -qme create /foo/bar
देखता है /foo/bar
किसी भी फाइल / निर्देशिका है कि किसी भी के लिए यानी घड़ी बनाया जा सकता है के लिए निर्देशिका create
घटना
यदि बनाया गया है, awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
तो जाँच करें कि क्या फ़ाइल एक निर्देशिका होती है और नाम है shop
( /,ISDIR shop$/
), यदि ऐसा है rm
तो निर्देशिका ( system("rm -r -- /foo/bar/shop")
)
आपको कमांड को एक उपयोगकर्ता के रूप में चलाने की आवश्यकता है जिसने निर्देशिका से /foo/bar
हटाने के लिए निर्देशिका पर अनुमति लिखी है shop
।
यदि आप mv
भी संचालन की निगरानी करना चाहते हैं, तो moved_to
घटना के लिए घड़ी भी जोड़ें :
inotifywait -qme create,moved_to /foo/bar | \
awk '/,ISDIR shop$/ { system("rm -r -- /foo/bar/shop") }'
बस ध्यान दें, यदि आप एक फ़ाइल की तलाश कर रहे हैं, तो निर्देशिका नहीं, नाम shop
:
inotifywait -qme create /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'
inotifywait -qme create,moved_to /foo/bar | \
awk '$NF == "shop" { system("rm -- /foo/bar/shop") }'