সংশোধন ও বিকল্পের স্বচ্ছতার জন্য সম্পাদনা করুন - আমি '- ব্রিফ' ভুলে গেছি
diff -rs --brief "$dir1" "$dir2"
-r, --recursive recursively compare any subdirectories found
-s, --report-identical-files report when two files are the same
-q, --brief report only when files differ
--speed-large-files assume large files and many scattered small changes
আপনি যা তুলনা করছেন তার উপর নির্ভর করে স্বাদে অন্যান্য বিকল্প যুক্ত করুন:
-i, --ignore-case ignore case differences in file contents
-b, --ignore-space-change ignore changes in the amount of white space
-B, --ignore-blank-lines ignore changes whose lines are all blank
--strip-trailing-cr strip trailing carriage return on input
--ignore-file-name-case ignore case when comparing file names
ডিফার-আরএসগুলি আসল এবং প্রতিলিপিটির প্রতিটি বাইট পড়বে এবং একই ফাইলগুলির প্রতিবেদন করবে।
ভিন্ন আউটপুট ফর্ম্যাটটি পসিক্স দ্বারা সংজ্ঞায়িত করা হয়, সুতরাং এটি বেশ পোর্টেবল। আপনি এর মতো কিছু যুক্ত করতে চাইতে পারেন:
| tee diff-out.1 | গ্রেপ-ভি-ই 'ফাইলগুলি। * এবং। * অভিন্ন'
আপনি chksums বা হ্যাশ ব্যবহার করতে পারেন, তবে তারপরে আপনাকে সেগুলি ফাইল গাছের সাথে সিঙ্ক করতে হবে, সুতরাং আপনি যে কোনও উপায়ে প্রতিটি ফাইলের প্রতিটি বাইট পড়তে ফিরে আসবেন।
সম্পাদনা - প্রতিক্রিয়া হিসাবে একটি মন্তব্য হতে খুব দীর্ঘ
10 গিগাবাইটের বেশি ফাইল যাচাই করছে না
আপনি এই ভিন্ন বিকল্পটি চেষ্টা করতে চাইতে পারেন: - স্পিড-লার্জ-ফাইলগুলি
সম্ভবত আপনি যে ডিফটি ব্যবহার করছেন তা খুব বড় ফাইল (উদাহরণস্বরূপ সিস্টেমের মেমোরির চেয়ে বড়) এর সাথে ভালভাবে মোকাবেলা করছে না এবং এইভাবে ফাইলগুলির মধ্যে পার্থক্য সম্পর্কে রিপোর্ট করছে যা আসলে একই।
আমি ভেবেছিলাম যে একটি -h বিকল্প বা একটি 'বিডিফ' রয়েছে যা বড় ফাইলগুলিতে আরও ভাল করেছে তবে আমি ফেডোরায় কোনও খুঁজে পাচ্ছি না। আমি বিশ্বাস করি যে - স্পিড-বড়-ফাইল বিকল্পগুলি '-h' "অর্ধ-হৃদয় তুলনা" বিকল্পের উত্তরসূরি।
'-ভিন' (ভার্বোজ, আইটেমাইজ, ন_আরুন) দিয়ে আপনি যে আরএসসিএনসি কমান্ডটি ব্যবহার করেছেন সেটির পুনরাবৃত্তি করার জন্য একটি পৃথক পদ্ধতি হবে। এটি rsync সন্ধান করে এমন কোনও পার্থক্যের প্রতিবেদন করবে - এবং কোনওরকম হওয়া উচিত নয়।
কিছু ফাইল সরানোর জন্য, আপনি কোনও স্ক্রিপ্টের দিকে এমন কিছু খুঁজছেন:
if [ cmp -s "$dir1/$path" "$dir2/$path" ] ; then
target="$dir2/verified/$path"
mkdir -p $(basename "$target")
mv "$dir2/$path" "$target"
fi
তবে আমি এটি করার পরামর্শ দিচ্ছি না। অন্তর্নিহিত প্রশ্নটি "আমি কীভাবে নিশ্চিত হতে পারি যে আরএসসিএনসি সঠিকভাবে একটি ফাইলের স্তরক্রম অনুলিপি করেছে?" এবং যদি আপনি নিজের কাছে প্রমাণ করতে পারেন যে ডিএসফ বা অন্য কোনও সরঞ্জামের সাহায্যে আরএসসিএনসি ভালভাবে কাজ করছে তবে আপনি তার চারপাশে কাজ করার পরিবর্তে আরএসইএনসি-র উপর নির্ভর করতে পারেন।
আরএসসিএন-ভিভিন আপনি অন্য যে কোনও অপশনই দেয় তার ভিত্তিতে তুলনা করবে। আমি ভেবেছিলাম এটি চেকসামে ডিফল্ট হয়েছে তবে আপনি ঠিক বলেছেন, এর জন্য -c বা --checksum প্রয়োজন।
ভিন্ন ইউটিলিটিটি সত্যই পাঠ্যের লাইনগুলির ফাইলগুলির জন্য লক্ষ্যযুক্ত, তবে এটি বাইনারি ফাইলগুলির জন্য 'অভিন্ন' হিসাবে রিপোর্ট করা উচিত।
--B ব্রিফের কোনও ফাইল সামগ্রীর আউটপুট দমন করা উচিত - এর আগে এটি উপেক্ষা করার জন্য আমার ক্ষমা - এটি একটি কুরুচিপূর্ণ স্ক্রিপ্টে অর্ধ-কবর দেওয়া হয়েছিল।