আমি প্রায়শই গৃহীত উত্তরে বর্ণিত কৌশলটি ব্যবহার করি:
diff <(ls old) <(ls new)
তবে আমি দেখতে পাই যে আমি সাধারণত এটি উপরের উদাহরণের চেয়ে অনেক বেশি জটিল কমান্ড সহ ব্যবহার করি। এই ধরনের ক্ষেত্রে এটি পৃথক কমান্ডটি কারুকাজ করা বিরক্তিকর হতে পারে। আমি এমন কিছু সমাধান নিয়ে এসেছি যা অন্যরা দরকারী হতে পারে।
আমি দেখতে পাই যে 99% সময় পার্থক্য চালানোর আগে প্রাসঙ্গিক আদেশগুলি চেষ্টা করে দেখি। ফলস্বরূপ যে আদেশগুলি আমি পৃথক করতে চাই তা আমার ইতিহাসে ঠিক আছে ... কেন সেগুলি ব্যবহার করবেন না?
আমি শেষ দুটি কমান্ড কার্যকর করতে ফিক্স কমান্ড (এফসি) ব্যাश বিল্টিন ব্যবহার করি:
$ echo A
A
$ echo B
B
$ diff --color <( $(fc -ln -1 -1) ) <( $(fc -ln -2 -2 ) )
1c1
< B
---
> A
এফসি পতাকাগুলি হল:
-n : কোন নম্বর নেই। তালিকাভুক্ত করার সময় এটি কমান্ড নম্বরগুলিকে দমন করে।
-l : তালিকাবদ্ধকরণ: আদেশগুলি স্ট্যান্ডার্ড আউটপুটে তালিকাভুক্ত করা হয়।
The -1
-1
গত কমান্ড যা শুধু গত কমান্ড উৎপাদ গত হুকুম থেকে এই ক্ষেত্রে তার মধ্যে ইতিহাসের শুরুর এবং শেষের positing পড়ুন।
অবশেষে আমরা $()
একটি সাব-শেলের কমান্ডটি কার্যকর করতে এটি মোড়ানো করি ।
স্পষ্টতই এটি টাইপ করতে কিছুটা ব্যথা হয় যাতে আমরা একটি নাম তৈরি করতে পারি:
alias dl='diff --color <( $(fc -ln -1 -1) ) <( $(fc -ln -2 -2 ) )'
অথবা আমরা একটি ফাংশন তৈরি করতে পারি:
dl() {
if [[ -z "$1" ]]; then
first="1"
else
first="$1"
fi
if [[ -z "$2" ]]; then
last="2"
else
last="$2"
fi
# shellcheck disable=SC2091
diff --color <( $(fc -ln "-$first" "-$first") ) <( $(fc -ln "-$last" "-$last") )
}
যা ব্যবহার করার জন্য ইতিহাসের রেখাগুলি নির্দিষ্ট করে সমর্থন করে। উভয় ব্যবহারের পরে আমি খুঁজে পেয়েছি যে উপন্যাসটি আমার পছন্দ করা সংস্করণ।