উত্তর:
আপনি এটি করতে ব্যবহার করতে পারেন rsync
:
$ rsync -abviuzP src/ dest/
-a
সংরক্ষণাগার মোড; সমান -rlptgoD (কোন-এইচ, -এ,-এক্স)-i
আইটেমযুক্ত ফর্ম্যাটটি চালু করে, যা ডিফল্ট ফর্ম্যাট থেকে আরও তথ্য দেখায়-b
পুরানো ফাইলটিতে ending সংযুক্ত করে, উভয় ফোল্ডারে থাকা আরএসসিএন ব্যাকআপ ফাইলগুলি তৈরি করে। আপনি - সুফিক্স .সুফ দিয়ে এই প্রত্যয়টি নিয়ন্ত্রণ করতে পারেন-u
আরএসসিএনসি ট্রান্সফার স্কিপ ফাইলগুলি তৈরি করে যা এসআরসি-র চেয়ে ভাগ্যে নতুন-z
সংক্ষেপণ চালু করে, যা ধীর লিঙ্কগুলির মাধ্যমে সহজে-সংকোচনযোগ্য ফাইলগুলি স্থানান্তর করার সময় কার্যকর-P
- পার্টিশিয়াল এবং - প্রগ্রেস চালু করে
--partial
ট্রান্সফার বাধাগ্রস্থ হলে rsync আংশিক স্থানান্তরিত ফাইলগুলি রাখে--progress
প্রতিটি স্থানান্তরের জন্য একটি অগ্রগতি বার দেখায়, দরকারী যদি আপনি বড় ফাইল স্থানান্তর করেনআমি এই সুইচগুলির বেশ কয়েকটি ড্রপ করব তবে এটি আপনাকে শুরু করার জন্যই। আমি সম্ভবত এই জাতীয় কিছু ব্যবহার করব:
$ rsync -abuP src/ dest/
এটি একবারে ঠিক আছে, আপনি ব্যাকআপ ফাইলগুলি সরাতে এই আদেশটি চালাতে পারেন:
$ find dest/ -name "*.~" -delete
আসুন ভান করি যে আমাদের নীচের নমুনা ডেটা রয়েছে।
মূল তথ্য
আমরা কয়েকটি জাল তথ্য তৈরি করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করব।
$ seq 10 | xargs -I{} -- mkdir dest/dir{}
$ for i in $(seq 5); do echo "$i" > dest/dir$i/file$i;done
ভুয়া তথ্যগুলি নীচে দেখায়:
$ tree -DsifvF --noreport dest/
dest
[ 4096 Aug 29 22:21] dest/dir1/
[ 2 Aug 29 22:21] dest/dir1/file1
[ 4096 Aug 29 22:21] dest/dir2/
[ 2 Aug 29 22:21] dest/dir2/file2
[ 4096 Aug 29 22:21] dest/dir3/
[ 2 Aug 29 22:21] dest/dir3/file3
[ 4096 Aug 29 22:21] dest/dir4/
[ 2 Aug 29 22:21] dest/dir4/file4
[ 4096 Aug 29 22:21] dest/dir5/
[ 2 Aug 29 22:21] dest/dir5/file5
নতুন তথ্য
এখন আমরা আসল ডেটা ( dest/*
-> src/
) এবং মিক্সটিতে আরও কয়েকটি নতুন ফাইল যুক্ত করব। এটি একটি "নতুন প্রকাশের অনুকরণ করে।
$ cp -pr dest/* src/
$ mkdir src/dir11
$ for i in 1 3 5 11; do echo "$i$i" > src/dir$i/file$i;done
ভুয়া তথ্যগুলি নীচে দেখায়:
$ tree -DsifvF --noreport src/
src
[ 4096 Aug 29 22:21] src/dir1/
[ 3 Aug 29 23:00] src/dir1/file1
[ 4096 Aug 29 22:21] src/dir2/
[ 2 Aug 29 22:21] src/dir2/file2
[ 4096 Aug 29 22:21] src/dir3/
[ 3 Aug 29 23:00] src/dir3/file3
[ 4096 Aug 29 22:21] src/dir4/
[ 2 Aug 29 22:21] src/dir4/file4
[ 4096 Aug 29 22:21] src/dir5/
[ 3 Aug 29 23:00] src/dir5/file5
[ 4096 Aug 29 23:00] src/dir11/
[ 5 Aug 29 23:00] src/dir11/file11
এসআরসি / ডেস্ট / এ মার্জ করুন
এটি নকল করে যে আমরা সবেমাত্র আমাদের নতুন সফ্টওয়্যার ট্রি সেটআপ করেছি src/
এবং আমাদের প্রাক-বিদ্যমান ডিরেক্টরিতে মার্জ করতে চাই dest/
।
$ rsync -abuP src/ dest/
sending incremental file list
dir1/file1
3 100% 0.00kB/s 0:00:00 (xfer#1, to-check=5/13)
dir11/
dir11/file11
5 100% 4.88kB/s 0:00:00 (xfer#2, to-check=4/13)
dir3/file3
3 100% 2.93kB/s 0:00:00 (xfer#3, to-check=2/13)
dir5/file5
3 100% 2.93kB/s 0:00:00 (xfer#4, to-check=0/13)
sent 416 bytes received 97 bytes 1026.00 bytes/sec
total size is 18 speedup is 0.04
আপনি দেখতে পাচ্ছেন যে নিম্নলিখিত ফাইলগুলি আপডেট করা হয়েছিল, file1, file3, file5, এবং সদ্য সংযুক্ত dir11 + file11।
এবং নিশ্চিতকরণ হিসাবে আমরা দেখতে পাচ্ছি যে নিম্নলিখিত ব্যাকআপ ফাইলগুলি rsync
যখন প্রাক-বিদ্যমান ফাইলগুলির মুখোমুখি হয়েছিল তখনই এটি তৈরি হয়েছিল dest/
।
$ find dest/ | grep "~"
dest/dir3/file3~
dest/dir1/file1~
dest/dir5/file5~
আপনি সিপি-আর নাম_ওফটি_ফোল্ডার / * নাম_ও_তিনিষ্ঠা_পদ্ধতি_ফোল্ডারটি ব্যবহার করতে পারেন যেখানে অ্যাসিটার্ক (*) সমস্ত ফাইল এবং -r পুনরাবৃত্তির অনুলিপি জন্য দাঁড়িয়ে আছে।
আপনি -i বিকল্পটিও ব্যবহার করতে পারেন যা আপনাকে সামগ্রীতে ওভাররাইট করতে চাইলে আপনাকে জিজ্ঞাসা করবে।