मैं svnadmin dump
एक बैकअप स्क्रिप्ट के लिए एक कमांड को स्वचालित करने की कोशिश कर रहा हूं , और मैं कुछ इस तरह करना चाहता हूं:
find /var/svn/* \( ! -name dir -prune \) -type d -exec svnadmin dump {} > {}.svn \;
यह काम करने लगता है, इसमें यह प्रत्येक svn रिपॉजिटरी के माध्यम से दिखता है /var/svn
, और इस svnadmin dump
पर चलता है।
हालाँकि, {}
निष्पादन आदेश में दूसरा संसाधित होने वाली निर्देशिका के नाम के लिए प्रतिस्थापित नहीं किया जाता है। यह मूल रूप से केवल एक एकल फ़ाइल का नाम देता है {}.svn
।
मुझे संदेह है कि ऐसा इसलिए है क्योंकि शेल कमांड >
को समाप्त करने के लिए व्याख्या find
करता है, और यह उस कमांड से रीडायरेक्टिंग को नामांकित फ़ाइल तक पहुंचाने की कोशिश करता है {}.svn
।
कोई विचार?
{}
करने के लिए एक तर्क के रूपsh
और उसके बाद (अंदरsh
) ही कहते हैं"$0"
या"$1"
या तो।