एक फ़ोल्डर से दूसरे से सभी सामग्रियों को कैसे बदलें


23

मैं फ़ोल्डर oldऔर new

मैं में सभी सामग्री को बदलना चाहते हैं old/*करने के लिए new/*। उन फ़ोल्डरों में कई उपनिर्देशिकाएँ हो सकती हैं।

लेकिन कुछ फाइलें हो सकती हैं जो अंदर नहीं new/*हैं old/*, इसलिए मैं चाहता हूं कि वे जैसे हैं वैसे ही रहें।

मैं लिनक्स शेल से कैसे कर सकता हूं?

जवाबों:


18

rsync शायद यहाँ एक बेहतर विकल्प होगा। यह rsync -a subdir / ./ जितना ही सरल है। बेहतर समाधान के लिए इस unix.stackexchage उत्तर की जाँच करें

कमांड के -fसाथ उपयोग करें cp

cp -fR /source/files /dest

दबाने के लिए cp "प्रॉम्प्ट ।।

Cp के उपनाम को ओवरराइड करने के लिए आप इसे केवल उद्धरण में संलग्न कर सकते हैं:

 'cp' -rf ./source/* /destination/

अधिक जानकारी के लिए इन लिंक का अनुसरण करें:

http://www.wallpaperama.com/forums/cp-command-problems-forcing-overwrite-using-cp-command-t5685.html

http://bytes.com/topic/unix/answers/865372-force-cp-overwrite-existing-directory


23

का उपयोग करें rsync। यह एक दिशा में निर्देशिकाओं को सिंक्रनाइज़ करेगा। इसलिए, यदि आप अपने oldफ़ोल्डर को सब कुछ से अपडेट करना चाहते हैं new, लेकिन वहां क्या है, इसका उपयोग करें:

rsync -avh --dry-run /path/to/new/ /path/to/old/

यह, पहले उदाहरण में, स्थानांतरित की जाने वाली फ़ाइलों की सूची को आउटपुट करेगा। उस स्थिति में: जब तक यह पहले से ही मौजूद नहीं newहै old, तब तक इसमें पाई गई हर चीज की नकल की जाएगी सब कुछ oldवैसा ही रहता है जैसा वह है।

यदि यह आपको ठीक लगता है, तो --dry-runउन्हें असली के लिए प्रसारित करने के तर्क को हटा दें ।

-avhझंडे सिर्फ संग्रह मोड (जो टाइम स्टांप सुरक्षित करेगा, आदि), शब्दाडंबर और मानव पठनीय फ़ाइल आकार सक्षम करें। जब तक आप --deleteध्वज निर्दिष्ट नहीं करते तब तक गंतव्य से कुछ भी नहीं हटाया जाएगा । man rsyncअधिक जानकारी के लिए परामर्श करें ।

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