আমার কম্পিউটারে যখন আমি ব্যবহার করি:
find . \( -name dirname -type d \) -exec rm -r '{}' ';'
ডিরেক্টরিগুলি মুছে ফেলা হয়েছে তবে আমি ত্রুটি পেয়েছি:
find: ‘./dirname’: No such file or directory
প্রতিটি ডিরেক্টরি জন্য।
আমার ডিরেক্টরিগুলি খালি নয়, সুতরাং - মুছে ফেলা বিকল্পটি আমার পক্ষে কাজ করবে না। আমি এখানে এই আচরণের কারণটি খুঁজে পেয়েছি :
- ./ ডিরেক্টরিতে প্রথম এন্ট্রি লাগে (অগত্যা নয়) find এটি উদাহরণস্বরূপ dir.1 / হবে
- এটি এর সাথে তুলনা করে 'dir।?' এটি মিলছে? হ্যাঁ.
- "rm -r dir.1" নির্বাহ করা সন্ধান করুন।
- ডিরেক্টরিতে প্যাটার্নটি সন্ধান করতে dir.1 / প্রবেশ করার চেষ্টা করুন। এটি এক্সিকিউট কমান্ড সম্পর্কে কিছুই জানে না।
- এটি dir.1 / আর খুঁজে না। ENOENT ফেরত (স্ট্রেস আউটপুট দেখুন)
আমি এটি পরিবর্তে কাজ করার জন্য ব্যবহার করেছি:
rm -r `find . -name dirname -type d`
মনে রাখবেন যে অনুসন্ধানটি এখনও ডায়ারনাম নামের ডিরেক্টরিতে পুনরাবৃত্তি করার চেষ্টা করবে, যা সত্যই প্রয়োজনীয় নয় এবং কিছু অতিরিক্ত সময় লাগবে। আপনার ডিরেক্টরি কাঠামোর উপর নির্ভর করে আপনি --depth
অনুসন্ধান বিকল্পের সাহায্যে এটি ঘিরে কাজ করতে সক্ষম হতে পারেন । এছাড়াও, আপনার যদি dirname / foo / dirname এর মতো ডিরেক্টরি কাঠামো থাকে তবে আপনি আরএম থেকে "এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই" ত্রুটি পাবেন। ত্রুটিগুলি দমন করতে আপনি স্টাডারকে / dev / নাল থেকে পুনর্নির্দেশ করতে পারেন বা -f
আরএম দিয়ে (বাহিনী) পতাকা ব্যবহার করতে পারেন ।
-delete
বিকল্প রয়েছে।