আরও তিনটি বিকল্প।
এর find
সাথে -mindepth 1
এবং ব্যবহার করুন -delete
:
Indmindepth স্তর
স্তরগুলির চেয়ে কম স্তরে কোনও পরীক্ষা বা ক্রিয়া প্রয়োগ করবেন না (একটি অ-নেতিবাচক পূর্ণসংখ্যা)।
মাইন্ডেপথ 1 এর অর্থ কমান্ড লাইন আর্গুমেন্ট ব্যতীত সমস্ত ফাইল প্রক্রিয়া করে।
-delete
মুছুন ফাইল; অপসারণ সফল হলে সত্য। অপসারণ ব্যর্থ হলে, একটি ত্রুটি বার্তা জারি করা হয়। যদি এডিলেট ব্যর্থ হয়, সন্ধানের প্রস্থান স্থিতিটি ননজারো হবে (যখন এটি শেষ পর্যন্ত প্রস্থান করবে)। এডিলেটের ব্যবহার স্বয়ংক্রিয়ভাবে −ডেপথ বিকল্পটি সক্রিয় করে।
এই বিকল্পটি ব্যবহারের আগে সাবধানতার সাথে -ডেপথ বিকল্পটি দিয়ে পরীক্ষা করুন।
# optimal?
# -xdev don't follow links to other filesystems
find '/target/dir with spaces/' -xdev -mindepth 1 -delete
# Sergey's version
# -xdev don't follow links to other filesystems
# -depth process depth-first not breadth-first
find '/target/dir with spaces/' -xdev -depth -mindepth1 -exec rm -rf {} \;
২. find
ডিরেক্টরিতে নয় ফাইলগুলি ব্যবহার করুন । এটি প্রয়োজনীয়তা এড়িয়ে চলে rm -rf
:
# delete all the files;
find '/target/dir with spaces/' -type f -exec rm {} \;
# then get all the dirs but parent
find '/target/dir with spaces/' -mindepth 1 -depth -type d -exec rmdir {} \;
# near-equivalent, slightly easier for new users to remember
find '/target/dir with spaces/' -type f -print0 | xargs -0 rm
find '/target/dir with spaces/' -mindepth 1 -depth -type d -print0 | xargs -0 rmdir
৩. এগিয়ে যান এবং অভিভাবক ডিরেক্টরিটি সরান, তবে এটি পুনরায় তৈরি করুন। আপনি একটি আদেশ দিয়ে এটি করতে একটি বাশ ফাংশন তৈরি করতে পারেন; এখানে একটি সাধারণ এক-লাইনার:
rm -rf '/target/dir with spaces' ; mkdir '/target/dir with spaces'