স্তর অনুসারে সাব-ডাইরেক্টরিগুলি সরান


0

আমার নিম্নলিখিত ডিরেক্টরি কাঠামো রয়েছে:

/level1-root
  /level2-a
    /level3-aa
    /level3-ab
  /level2-b
    /level3-ba

লেভেল 1 এবং লেভেল 2 স্পর্শ না করে আমি কীভাবে সমস্ত স্তরের 3 ডিরেক্টরি এবং তাদের সামগ্রীগুলি মুছতে পারি?


1
কোনভাবেই না. স্তর 3 স্তর 2 এর সাথে সম্পর্কিত। স্তর 2 পরিবর্তন না করে আপনি এটিকে সরাতে পারবেন না।
ইপোর সিরসর

মানে rm -rf */*/*?
চোরোবা

সঙ্গে rm -rf */*/*বা অনুরূপ সাবধানতা অবলম্বন করুন । আমি মনে করি এটি কোনও স্তরে শুরু হওয়া ডিরেক্টরি এবং ফাইলগুলি সরিয়ে ফেলবে । যদি আপনি এটি স্তর 3 ডিরেক্টরিতে লক্ষ্য করে থাকেন তবে আপনি স্তর 3 ফাইলও মুছে ফেলবেন (অর্থাত্ সরাসরি স্তর 2 ডিরেক্টরিতে ফাইলগুলি)। rm -rf */*/*/শুধুমাত্র ডিরেক্টরি লক্ষ্য করা উচিত। অতিরিক্তভাবে *লুকানো ফাইল / ডিরেক্টরিগুলির সাথে মেলে না।
কামিল ম্যাকিয়েরোভস্কি

তারপর rm -rf */*/*/*দ্বারা অনুসরণ rmdir */*/*...
xenoid

উত্তর:


1

যদি আপনি অপসারণ করেন level3-baতবে এর level2-bএকটি প্রবেশিকা হারাবে, সুতরাং এটি "স্পর্শ ছাড়াই" স্তর 2 নয়।

আপনি তাদের বিষয়বস্তু সঙ্গে শুধুমাত্র স্তর 3 ডিরেক্টরি সরাতে চান তাহলে (অর্থাত স্তর 2 কিংবা স্তর 1 এ যে ফাইল অধীনে সরাসরি স্তর 2 ডিরেক্টরি হয়, কিংবা কিছু মুছে ফেলার জন্য না), তারপর এটির জন্য একটি কাজ find -mindepth ... -maxdepth ... -type d ...। নিরাপদ আদেশ:

find /level1-root -mindepth 2 -maxdepth 2 -type d -exec echo rm -rf {} +
  • কেন 2? কারণ আপনার স্তর 3 হ'ল ডিরেক্টরি /level1-rootশুরু করার চেয়ে গভীর ।
  • আপনি যে ডিরেক্টরিগুলি চান তা নিশ্চিত করার পরে, echoপ্রকৃত অপসারণ সম্পাদন করতে বাদ দিন ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.