যদি আপনি সমস্ত ফাইল মুছতে চান যাদের নাম একটি নির্দিষ্ট ফর্মের সাথে মেলে তবে একটি ওয়াইল্ডকার্ড (গ্লোব প্যাটার্ন) সবচেয়ে সরল সমাধান। কিছু উদাহরণ:
$ rm -f abc.log.* # Remove them all
$ rm -f abc.log.2012* # Remove all logs from 2012
$ rm -f abc.log.2012-0[123]* # Remove all files from the first quarter of 2012
নিয়মিত প্রকাশগুলি ওয়াইল্ডকার্ডের চেয়ে বেশি শক্তিশালী; আপনি আউটপুট ভোজন পারেন grep
করতে rm -f
। উদাহরণস্বরূপ, যদি ফাইলের নাম কিছু দিয়ে শুরু "abc.log"
এবং সঙ্গে কিছু "ABC.log"
, grep
দেয় একটি কেস-অবশ ম্যাচ করুন:
$ rm -f $(ls | grep -i '^abc\.log\.')
যদি ফাইলের নামের কোনওটিতে ফাঁকা স্থান সহ মজাদার অক্ষর থাকে তবে এটি সমস্যা তৈরি করবে। সতর্ক হোন.
যখন আমি এটি করি, আমি ls | grep ...
প্রথমে কমান্ডটি চালাচ্ছি এবং এটি আমার আউটপুটটি উত্পাদন করে তা পরীক্ষা করে দেখুন - বিশেষত যদি আমি ব্যবহার করি rm -f
:
$ ls | grep -i '^abc\.log\.'
(check that the list is correct)
$ rm -f $(!!)
যেখানে !!
পূর্ববর্তী কমান্ডে প্রসারিত হয়। অথবা আমি আপ-তীর বা Ctrl-P টাইপ করতে পারি এবং rm -f
কমান্ড যুক্ত করতে পূর্ববর্তী লাইনটি সম্পাদনা করতে পারি ।
এটি ধরে নিয়েছে আপনি ব্যাশ শেলটি ব্যবহার করছেন। কিছু অন্যান্য শেল, বিশেষত csh এবং tcsh এবং কিছু পুরানো sh-derised শেল $(...)
সিনট্যাক্স সমর্থন করে না । আপনি সমতুল্য ব্যাকটিক সিনট্যাক্স ব্যবহার করতে পারেন:
$ rm -f `ls | grep -i '^abc\.log\.'`
$(...)
সিনট্যাক্স পড়ার জন্য সহজ, এবং যদি সত্যিই উচ্চাভিলাষী করছি এটা নেস্টেড হতে পারে।
অবশেষে, আপনি মুছে ফেলতে চান ফাইলগুলির সাবসেটটি যদি নিয়মিত অভিব্যক্তি দিয়ে সহজেই প্রকাশ করা যায় না, আমি যে কৌশলটি প্রায়শই ব্যবহার করি তা হ'ল ফাইলগুলি একটি অস্থায়ী পাঠ্য ফাইলটিতে তালিকাভুক্ত করা, তারপরে এটি সম্পাদনা করুন:
$ ls > list
$ vi list # Use your favorite text editor
আমি list
কেবল ফাইলগুলি সরাতে চাইলে নিজেই ফাইল সম্পাদনা করতে পারি এবং তারপরে:
$ rm -f $(<list)
অথবা
$ rm -f `cat list`
(আবার, এটি ধরে নেয় যে কোনও ফাইলের নামেই মজাদার অক্ষর নেই, বিশেষত স্পেস।
বা, list
ফাইল সম্পাদনা করার সময় , আমি rm -f
প্রতিটি লাইনের শুরুতে এবং তারপরে যোগ করতে পারি :
$ . ./list
অথবা
$ source ./list
ফাইল সম্পাদনা করা যেখানে প্রয়োজন সেখানে উদ্ধৃতি যুক্ত করারও একটি সুযোগ, উদাহরণস্বরূপ পরিবর্তন rm -f foo bar
করা rm -f 'foo bar'
।