আপনার কমান্ডটি কাজ করছে না কারণ আপনি যখন /var/www/*
উত্স হিসাবে ব্যবহার করছেন তখন আপনার শেলটি গ্লোব্বিং করছে অর্থাৎ শেলটি *
সেই ডিরেক্টরিতে থাকা সমস্ত ফাইলগুলিতে প্রসারিত হচ্ছে এবং ফাইলগুলি একে একে অনুলিপি করছে, সুতরাং এখানে পৃথক ফাইলগুলি পরিবর্তে উত্স হয়ে উঠেছে অভিভাবক ডিরেক্টরি।
সুতরাং, আপনি যদি ব্যবহার করেন /var/www/*
তবে আপনার --recursive
বিকল্পের দরকার নেই *
কারণ ফাইলগুলি অনুলিপি করার কারণ হবে (তাদের বিষয়বস্তুগুলির সাথে কোনও ডিরেক্টরি সহ), ফাইলগুলি অন্তর্ভুক্তকারী প্যারেন্ট ডিরেক্টরি নয়। একই কারণে --delete
কাজ করছে না কারণ উত্স ডিরেক্টরিতে নেই এমন --delete
গন্তব্য ডিরেক্টরি থেকে ফাইলগুলি সরিয়ে দেবে , তবে আপনি ফাইলগুলি অনুলিপি করছেন যাতে এটি ফাইলগুলি সরিয়ে না দেয় (প্রত্যাশিতভাবে)।
এটি আপনাকে আরও পরিষ্কার করে দেবে:
/foo$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
drwxrwxr-x 2 user user 4096 Apr 16 18:14 test
/bar$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 18:13 lion
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
$ rsync -avz --ignore-existing --recursive --delete
/foo/* /bar/
+ rsync -avz --ignore-existing --recursive --delete
/foo/egg /foo/spam /foo/test /bar/
sending incremental file list
test/
test/hello
sent 173 bytes received 39 bytes 424.00 bytes/sec
total size is 0 speedup is 0.00
/bar$ ls -l
-rw-rw-r-- 1 user user 0 Apr 16 17:56 egg
-rw-rw-r-- 1 user user 0 Apr 16 18:13 lion
-rw-rw-r-- 1 user user 0 Apr 16 17:56 spam
drwxrwxr-x 2 user user 4096 Apr 16 18:14 test
যেমন আপনি দেখতে পাচ্ছেন, আমি উত্সটি ব্যবহার করেছি /foo/*
সুতরাং rsync
কমান্ডটি কার্যকর করা হচ্ছে
rsync -avz --ignore-existing --recursive --delete /foo/egg
/foo/spam /foo/test /bar/
সঙ্গে *
শেল উপার্জন এটি প্রসারিত করতে এবং উৎস আর্গুমেন্ট নয়, সামগ্রিকভাবে পেরেন্ট ডাইরেক্টরি যেমন পৃথকভাবে সব ফাইল করা (এবং আপনার কাছে প্রয়োজন হবে না --recursive
এই ক্ষেত্রে)।
সুতরাং, আপনি যদি --delete
কাজটি করতে চান তবে এটিকে চালনা করুন:
rsync -avz --ignore-existing --recursive --delete
/var/www/ root@mydomaintest.com:/var/www/