সম্ভাব্য সদৃশ:
কোনও ডিরেক্টরি বাদে ডিরেক্টরিতে সমস্ত ফাইল কীভাবে মুছবেন?
ইউনিক্সের এক (বা কিছু) ফাইল বাদে কীভাবে মুছবেন?
কিছুটা এইরকম
rm -rf -ignore myfile.txt *
সম্ভাব্য সদৃশ:
কোনও ডিরেক্টরি বাদে ডিরেক্টরিতে সমস্ত ফাইল কীভাবে মুছবেন?
ইউনিক্সের এক (বা কিছু) ফাইল বাদে কীভাবে মুছবেন?
কিছুটা এইরকম
rm -rf -ignore myfile.txt *
উত্তর:
ls * | grep -v dont_delete_this_file | xargs rm -rf
উদাহরণ:
mkdir test && cd test
touch test1
touch test2
touch test3
touch test4
touch test5
'টেস্ট 2' ব্যতীত সমস্ত ফাইল সরিয়ে ফেলতে:
ls * | grep -v test2 | xargs rm -rf
তারপরে 'ls' আউটপুটটি হ'ল:
test2
সম্পাদনা করুন:
মন্তব্যের জন্য ধন্যবাদ. ডিরেক্টরিতে স্পেস সহ কিছু ফাইল থাকে:
mkdir test && cd test
touch "test 1"
touch "test 2"
touch "test 3"
touch "test 4"
touch "test 5"
আপনি (ব্যাশ সহ) ব্যবহার করতে পারেন:
rm !("test 1"|"test 4")
'ls' আউটপুট:
test 1
test 4
ls -1 | grep -v do_not_delete | xargs -I files rm "files"
এই পৃষ্ঠাটি শেলের উপর নির্ভর করে বিভিন্ন ধরণের বিকল্প দেয়: http://www.unix.com/unix-dummies-questions-answers/51400-how-remove-all-except-one-file.html
একটি পুনরাবৃত্তির rm
জন্য আপনার পুনরাবৃত্তি করতে হবে find
এবং যে ফাইল (গুলি) রাখতে চান তা বাদ দিতে হবে (বা grep
তবে এটি আপনাকে হোয়াইটস্পেসের সমস্যায় ফেলতে পারে)। শেল গ্লোব জন্য, আধুনিক শেলগুলিতে গ্লোব নিদর্শন রয়েছে যা ফাইলগুলি বাদ দিতে ব্যবহার করা যেতে পারে; এই শেল-স্তরের উল্লিখিত glob পুনরাবৃত্তির সঙ্গে মিলিত হতে পারে যখন উপলব্ধ (যেমন zsh
রয়েছে rm **/*~foo/bar
- দয়া করে মনে রাখবেন এই বিশাল ডিরেক্টরির গাছ জন্য যুক্তি দৈর্ঘ্য সীমা মধ্যে চালানো হতে পারে)।