আপনার বাশ ওরফে ভাল লেখা নেই (একক উদ্ধৃতি ভাল ব্যবহার করা হয় না)। পরিবর্তে এটি হওয়া উচিত:
alias rm~='find . -name "*~" -print0 | xargs -0 /bin/rm -f'
এখন, আমি ব্যক্তিগতভাবে পাইপগুলির অকেজো ব্যবহার পছন্দ করি না এবং xargsতাই আপনার এলিফটি আরও ভালভাবে লেখা হবে:
alias rm~='find . -name "*~" -type f -exec /bin/rm -fv -- {} +'
-type fশুধুমাত্র ফাইল (না ডিরেক্টরি, লিঙ্ক, ইত্যাদি), এটি তাই হিসাবে বিকল্প -vবিকল্প rmতাই হিসাবে বাগাড়ম্বরপূর্ণ (আউট কি এটা মুছে ফেলা কপি করে প্রিন্ট) যাবে। +শেষে যাতে findরান rm(spawns মাত্র এক উদাহরণ হিসেবে বলা যায় সব পাওয়া ফাইলগুলির সাথে rmফাইল প্রতি এক, পরিবর্তে)।
এখন থেকে man bash:
প্রায় প্রতিটি কাজের জন্য, এলিয়াসগুলি শেল ফাংশন দ্বারা ত্যাগ করা হয়।
একটি উপনামের পরিবর্তে, একটি ফাংশন ব্যবহার করা ভাল: .bash_aliasesফাইলটিতে আপনার উপনামটি মন্তব্য করুন (যেমন, #সেই লাইনের সামনে একটি রাখুন ), এবং ফাইলটিতে .bashrcএই ফাংশনটি রাখুন (ফাইলের যে কোনও জায়গায়, শেষে ভাল আছে) :
rm~() {
find . -name "*~" -type f -exec /bin/rm -fv -- {} +
}
এছাড়াও, অন্যান্য উত্তর হিসাবে উল্লেখ করা হয়েছে, আপনি সন্ধানের জন্য -deleteআদেশটি ব্যবহার করতে পারেন । এই ক্ষেত্রে, আপনার rm~ফাংশনটি হবে:
rm~() {
find . -name "*~" -type f -printf "Removing file %p\n" -delete
}
আসলে, আপনি একটি দুর্দান্ত ফাংশন করতে পারেন যা একটি যুক্তি নেবে, বলুন --dry-run, এটি কেবল এটিই মুছে ফেলবে যা ফলাফল দেয়:
rm~() {
case "$1" in
"--dry-run")
find . -name "*~" -type f -printf "[dry-run] Removing file %p\n"
;;
"")
find . -name "*~" -type f -printf "Removing file %p\n" -delete
;;
*)
echo "Unsupported option \`$1'. Did you mean --dry-run?"
;;
esac
}
তারপরে ব্যবহার করুন:
rm~ --dry-run
মুছে ফেলা হবে এমন ফাইলগুলি প্রদর্শন করতে (তবে সেগুলি মুছবে না) এবং তারপরে
rm~
আপনি যখন এতে খুশি হন
অভিযোজন এবং আপনার প্রয়োজন প্রসারিত!
বিঃদ্রঃ. পরিবর্তনগুলি কার্যকর করার জন্য আপনাকে একটি নতুন টার্মিনাল খুলতে হবে।