जवाबों:
मान लें कि आपके पास क्रमिक रूप से क्रमांकित निर्देशिकाएं हैं जैसे: ' dirnameN
',
जहां ' N
' संख्या है।
आप (मूल निर्देशिका से) उच्चतम संख्या पा सकते हैं,
खोजो। -Type d -name dirname \ * | sed 's | dirname || | सॉर्ट-एन | पूंछ -1
तो, आप अपनी निर्देशिका नामों में पैटर्न का उपयोग इसे फ़िल्टर करने के लिए करते हैं (' sed
') और संख्या छोड़ते हैं।
फिर, आप अंतिम संख्या ज्ञात करने के लिए संख्यात्मक रूप से क्रमबद्ध करते हैं।
उसके बाद, आप उसमें से एक जोड़ेंगे और उसी पैटर्न का उपयोग करके अपनी अगली निर्देशिका बनाने के लिए आगे बढ़ेंगे।
कहो, कुछ ऐसा है,
dirnamePattern = dirname lastDirname = 11 newDirname = $ ((lastDirname +1)) newDirname = $ {dirnamePattern} $ {} newDirname
आपको दे देंगे ' dirname12
'।
निम्नलिखित को एक पंक्ति में करना चाहिए:
mkdir $(($(find . -type d | sed -e 's/[^0-9]*//g' | sort -n | tail -n 1)+1))
फ़ोल्डरों को देखते हुए:
1 something
3 other text
some 5 thing
2 test
यह एक फ़ोल्डर बनाता है जिसका नाम है 6
।
यदि आप नाम की फ़ाइल कॉपी करना चाहते हैं file
, तो बस कुछ इस तरह से करें:
name=$(($(find . -type d | sed -e 's/[^0-9]*//g' | sort -n | tail -n 1)+1)); mkdir $name; cp file $name