कैसे सभी निर्देशिका और फ़ाइलों को पुनरावर्ती में बैश करने के लिए?


137

मेरे पास स्क्रिप्ट है:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir इसमें उप-फ़ोल्डर भी हैं।

समस्या यह है कि DestFolderन केवल सभी पेड़, बल्कि ऊपर के स्तर में सभी अन्य स्तर और फाइलें।

कैसे ठीक करना है ?


क्षमा करें, "* .txt" को जोड़ना भूल गया
user710818

जवाबों:


289
cp -r ./SourceFolder ./DestFolder

6
तो, स्पष्ट करने के लिए, पूंजी -R विकल्प रूट डायर को फिर से कॉपी करेगा; छोटे -r विकल्प रूट रूट को समान रखता है।
ऐनीएजाइल

8
@AnneTheAgile - मेरे परीक्षणों से अभी और मैन पेजों के अनुसार, -r और -R अलग नहीं हैं।
आआआआआआ

@ आआआआआआ, टाय! आप किस OS / संस्करण पर हैं? मुझे पता चला कि बाद में ऐसा लगता है कि बैश कमांड पूरे ऑपरेटिंग सिस्टम में अलग-अलग हो सकते हैं।
ऐनीएजिले

2
cpएक बैश कमांड नहीं है, लेकिन एक अलग निष्पादन योग्य है, इसलिए यह सिस्टम-विशिष्ट है। दूसरी ओर ट्रू बैश कमांड ऑपरेटिंग सिस्टम पर समान होते हैं।
lanzz

52

एक साधारण कॉपी के लिए कोड।

cp -r ./SourceFolder ./DestFolder

सफलता के परिणाम के साथ एक प्रति के लिए कोड

cp -rv ./SourceFolder ./DestFolder

स्रोत के लिए कोड यदि किसी भी आसानी से फ़ाइल में है तो वह भी कॉपी हो जाएगी

cp -rf ./SourceFolder ./DestFolder

जानकारी के लिए मदद

cp --help
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.