কেবল বাশের for
লুপটি ব্যবহার করুন এবং test
পছন্দসই ডিরেক্টরিগুলি ফিল্টার করতে এবং rm -rf
কমান্ডটি পুনরাবৃত্তভাবে ডিরেক্টরিগুলি মুছতে, যেমন:
for x in /path/to/parent/*; do test "$x" != "dir_survive" && rm -rf "$x"; done
এটি অভ্যন্তরের সমস্ত উপাদান (ফাইল এবং ডিরেক্টরি) এর উপরে পুনরাবৃত্তি করে এবং /path/to/parent/
নামটির সাথে সমান না হলে পুনরাবৃত্তভাবে উপাদানটিকে মুছে দেয় dir_survive
। যদি মূল ডিরেক্টরি বর্তমান ডিরেক্টরি হয় তবে আপনি কেবল *
পথ হিসাবেই লিখতে পারেন ।
আপনি যদি অনিশ্চিত থাকেন এবং কোন পদক্ষেপ না নিয়ে কোন উপাদানগুলি প্রথমে মুছে ফেলা হবে তা পরীক্ষা করতে চান তবে rm -rf
উপরের কমান্ডটিতে কেবল প্রতিস্থাপন করুন echo
এবং এটি কেবল মোছা প্রার্থীদের আউটপুট দেবে।
এখানে একটি উদাহরণ রান করুন:
$ tree
.
├── dir1
│ ├── subdir1
│ │ ├── file1
│ │ └── file2
│ └── subdir2
│ ├── file1
│ └── file2
├── dir2
│ ├── subdir1
│ │ ├── file1
│ │ └── file2
│ └── subdir2
│ ├── file1
│ └── file2
└── dir_survive
├── subdir1
│ ├── file1
│ └── file2
└── subdir2
├── file1
└── file2
9 directories, 12 files
$ for x in *; do test "$x" != "dir_survive" && rm -rf "$x"; done
$ tree
.
└── dir_survive
├── subdir1
│ ├── file1
│ └── file2
└── subdir2
├── file1
└── file2
3 directories, 4 files