नेस्टेड फ़ोल्डर की सभी फ़ाइलों को अन्य फ़ोल्डर में ले जाना लेकिन बिना ओवरराइट के


-1

अपने पिछले प्रश्न में मैं अपनी सभी फाइलों को फ़ोल्डर्स और सबफ़ोल्डर्स के अंदर धकेलने की कोशिश कर रहा था। अब मैं कमांड के साथ कर सकता हूं:

 find MainFolder -type f -exec mv \{\} FinalFolder \;

अब, मैं ओवरराइट से बचना चाहूंगा। क्या यह संभव है?

धन्यवाद।

जवाबों:


0

mvअगर आप दो या अधिक एक नाम टक्कर है कि है नुस्खा फ़ाइलों के ऊपर लिख सकते हैं। यदि आप बचना चाहते हैं कि आप mv के स्थान पर cp कमांड का उपयोग करके वर्जन नंबर प्राप्त कर सकते हैं।

find MainFolder -type f -exec cp --backup=numbered \{\} FinalFolder \;

फिर आप अपनी डुप्लिकेट फ़ाइलों में घुंघराले ब्रेसिज़ में नंबर होंगे क्योंकि संस्करण संख्या उनसे टकराती है

यदि cpपुष्टिकरण के लिए पूछता रहता है, तो यह हो सकता है क्योंकि cpकमांड को cp -iअल सफेदी के लिए अलियास किया जा रहा है । एक सामान्य इनिशियलाइज़ेशन। उस मामले /bin/cpमें के स्थान पर उपयोग करेंcp

मूल निर्देशिका संरचना चलने के बाद भी रहेगी। यदि आप यह नहीं चाहते हैं। बस rm -rf MainFolderजब आप सुनिश्चित हों कि आप इसके साथ कर रहे हैं


1

के लिए -nस्विच mvहै जो आप के बाद कर रहे हैं। मैनपेज से:

-n, -no-clobber किसी मौजूदा फ़ाइल को अधिलेखित नहीं करता है

इसे अपने खोज स्क्रिप्ट में बेक करके इसमें परिणाम दें:

find MainFolder -type f -exec mv -n \{\} FinalFolder \;

मेरा मानना ​​है कि अगर वे एक नाम की नकल करते हैं तो फाइल को मेनफॉल्डर में पीछे छोड़ दिया जाएगा
17-22
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.