কীভাবে দুটি ডিরেক্টরিতে ফাইলের নাম পৃথক করবেন (অন্তর্বর্তী ফাইলগুলিতে লিখিত না রেখে)?


31

আমি এর লাইনে কিছু করার চেষ্টা করছি:

diff `ls -1a ./dir1` `ls -1a ./dir2`

কিন্তু এটি সুস্পষ্ট কারণে কাজ করে না। এটির চেয়ে আরও ভাল উপায় (1 লাইনে) আছে কি?

ls -1a ./dir1 > lsdir1
ls -1a ./dir2 > lsdir2
diff lsdir1 lsdir2

ধন্যবাদ

উত্তর:


47

আপনি বন্ধ ছিল. বাশে আপনি প্রক্রিয়া প্রতিস্থাপন চান , কমান্ড প্রতিস্থাপন নয়:

diff <(ls -1a ./dir1) <(ls -1a ./dir2)

প্রক্রিয়া প্রতিস্থাপনের প্রয়োজন হয় না, যদিও। নীচে উত্তর ( superuser.com/a/228773/566289 ) পয়েন্টে আছে!
জানু ডি

এই উত্তর ব্যতীত ফাইলের নামগুলি পৃথক হয়!
হারিয়েছে

10
diff -rq dir1 dir2

-r বিকল্পটি ব্যবহার করে, পুরো ডিরেক্টরি গাছগুলি হাঁটুন, প্রতিটি গাছের তুলনামূলক পয়েন্টগুলিতে সাব-ডাইরেক্টরিগুলি এবং ফাইলগুলির মধ্যে পুনরাবৃত্তভাবে পার্থক্য পরীক্ষা করে। কৌশলটি হ'ল লাইন বাই লাইন তুলনা দমন করতে -q বিকল্পটি ব্যবহার করা


3
@ ফেস্টো: আপনি এই প্রশ্নের মূল কথা হারিয়েছেন, আমি ফাইলের বিষয়বস্তুগুলিকে ls
আলাদা

+1, প্রকৃতপক্ষে, আমি একটি ক্যাভেটের সাথে একই আউটপুট পেয়েছি, ডিফ-আরকিউ একটি লিঙ্কযুক্ত ফাইলটিকে 'এরকম কোনও ফাইল বা ডিরেক্টরি নেই' হিসাবে রিপোর্ট করেছে। সুতরাং, সঠিক এবং খোলামেলা সহজ ব্যবহারের জন্য প্লাস এক। (
আইভিএর উত্তরটি

1
এই অনেক ধীর ফাইলের নাম diffing চেয়ে: প্রতিবার ফাইলের সম্পূর্ণতা পড়া এবং তুলনা করতে হবে।
জাজ

@ জোশ অবশ্যই, কারণ এটি পুনরাবৃত্তি করে ....
ব্রায়াম

1
@Braiam: এমনকি যদি আপনি recursively ফাইলের নাম (ব্যবহার বিবিধতা rsyncসঙ্গে --dry-runবিকল্প, উদাহরণস্বরূপ), এটা এখনও অনেক দ্রুত তুলনায় হবে diff -r
জাজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.