অন্য ডিরেক্টরিতে নয় একটি ডিরেক্টরিতে ফাইলগুলি সন্ধান করুন


12

এমন কোনও লিনাক্স / ইউনিক্স সরঞ্জাম রয়েছে যা একটি ডিরেক্টরিতে থাকা সমস্ত ফাইল অন্যটিতে উপস্থিত থাকে না? মূলত আমি ডিফের সন্ধান করছি যা এলএস এর আউটপুটটিতে কাজ করে।

সংক্ষিপ্ত এবং মিষ্টি স্ক্রিপ্টগুলি প্রশংসা করা হয়।

উত্তর:


20

diff এটি ইতিমধ্যে:

diff dir1 dir2

উদাহরণ আউটপুট:

Only in dir1: some_file.txt
Only in dir1: some_other_file.txt
Only in dir2: third_file.txt

5
এটা ভাল. একটি গ্রিপ: ডিফ আসলে উভয় ফাইলের মধ্যে চলছে। কেবল ফাইল নামের বিরুদ্ধে চালানোর জন্য কি কোনও অস্পষ্ট বিকল্প রয়েছে (আমি এটি মিস করেছি)? অন্যথায়, আমি পরামর্শ দিচ্ছিdiff dir1 dir2 | grep "Only"
উইল বাল্টেনথিন

বাহ এটি আমাকে কেবল কয়েক মিনিটের বাশ স্ক্রিপ্টিং ধন্যবাদ সংরক্ষণ করে
ব্যবহারকারীর 35359531

10

ব্যাশ:

diff <(cd dir1; ls) <(cd dir2; ls)

কেবল ফাইলের সাথে তুলনা করুন - ফাইলগুলির বিষয়বস্তু নয়।




বিশ্লেষণ করবেন না ls, findপরিবর্তে ব্যবহার করুন!
বলেছেন মনিকা পুনরায় ইনস্টল করুন

4

লোকেরা আপনাকে এখানে যেমন বলেছে, আপনি বিভিন্ন ব্যবহারের প্রকরণে ডিআইএফএফ ব্যবহার করতে পারেন। অথবা আপনি কেবল dirdiffপরিবর্তে ব্যবহার করুন, যা আপনি চেষ্টা করছেন তার জন্য বোঝানো হচ্ছে! :-)

আপনি যদি কিছু ডিরেক্টরি সিঙ্কে রাখতে চান তবে আপনার সত্যিই নজর দেওয়া উচিত rsync

শুভেচ্ছা সহ


3

আপনি যদি সমস্ত সাব ডিরেক্টরিতেও এটি করতে চান, তবে এটি করার একটি ভাল উপায়:

diff --brief -r dir1/ dir2/

আমি সংক্ষিপ্ত ব্যবহার পছন্দ করি, তবে আপনি চান তা বাদ দিতে পারেন।





0

ডেনিস উইলিয়ামসনের একটি ভাল উত্তর ছিল , তবে আমার এটি পুনরাবৃত্তভাবে করা দরকার। জিএনইউ অনুসন্ধানসমূহ ৪.7.০ এর আউটপুটটিকে বাছাই করে না, তাই আমি যা ব্যবহার করেছি তা এখানে

diff <(cd $dir1; find | sort) <(cd $dir2; find | sort)

এটি শুধুমাত্র একটি উপায়ে করতে এবং ফাইলগুলির একটি তালিকা উত্পাদন করতে, আমি এটি ব্যবহার করেছি:

diff <(cd $dir1; find | sort) <(cd $dir2; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"

এটি সঠিকভাবে কাজ করার জন্য, $ dir1 বা $ dir2 উভয়ের মধ্যেই চলমান স্ল্যাশ অন্তর্ভুক্ত করা উচিত নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.