উত্তর:
আপনার প্রশ্নের সরাসরি উত্তর দিতে, "না - আপনি যা বর্ণনা করেছেন তা করতে পারবেন না rm
"।
আপনি করতে পারেন যদিও, আপনার সাথে মেশা না find
। আপনি এটি করতে পারেন এমন অনেক উপায়ে এখানে একটি:
# search for everything in this tree, search for the file pattern, pipe to rm
find . | grep <pattern> | xargs rm
উদাহরণস্বরূপ, আপনি যদি সমস্ত * ~ ফাইলগুলি নাক করতে চান তবে আপনি এটি করতে পারেন:
# the $ anchors the grep search to the last character on the line
find . -type f | grep '~'$ | xargs rm
একটি মন্তব্য থেকে প্রসারিত * :
# this will handle spaces of funky characters in file names
find -type f -name '*~' -print0 | xargs -0 rm
find | grep | xargs rm
। স্পেস (বা নিউলাইনস) সহ যদি ফাইল থাকে তবে এটি ভেঙে যাবে (এবং ফাইলের উপর নির্ভর করে এবং স্পেসগুলি কোথায় রয়েছে) এমন জিনিসগুলি মুছতে পারে যা আপনি মুছতে চাননি। find … -print0 | xargs -0 rm
আরও শক্তিশালী হবে। তবে এর অর্থ হ'ল আপনি grep
ব্যবহার করতে পারবেন না find
এবং কেবলমাত্র পছন্দসই ফাইলগুলি মেলে এবং মুদ্রণের জন্য অবশ্যই এর পূর্বাভাসগুলি ব্যবহার করতে হবে । ওয়ারেনের দ্বিতীয় উদাহরণটি আরও দৃust় হবে find -type f -name '*~' -print0 | xargs -0 rm
।
"অন্যান্য আদেশ ব্যবহার না করে"
না।
ব্যাশ, globstar
সেট সহ, হ্যাঁ :
rm basedir/**/my*pattern*
আপনার মেলে এমন ফাইলগুলির তালিকা তৈরির ls -1
আগে প্রথমে rm
এটি ব্যবহার করে দেখুন।
উদাহরণস্বরূপ আপনি বিকল্পগুলি সেট করেছেন shopt -s globstar
।
বিকল্পভাবে, একটি সংক্ষিপ্ত find
রূপ:
find -type f -name 'my*pattern*' -delete
বা জিএনইউর জন্য find
:
find -type f -name 'my*pattern*' -exec rm {} +
বা নন-জিএনইউ find
( অন্যদিকে কিছুটা ধীর) এর বিকল্প:
find -type f -name 'my*pattern*' -exec rm {} \;
এছাড়াও, ডিরেক্টরি মুছে ফেলুন হিসাবে আপনি জন্য অনুরোধ করতে: শুধু পরিবর্তন rm
মধ্যে rm -r
উপরে কমান্ড এবং শুধুমাত্র ম্যাচিং লাফালাফি -type f
মধ্যে find
কমান্ড।
আমি "rm -rf" হিসাবে ধরে নিয়েছি যেখানে ফাইলের নাম এবং * এবং? ইত্যাদি (যেমন আজকের_লগ_2009 ????। লগ)। এটি বর্তমান দির থেকে শুরু হয়ে পুনরাবৃত্তভাবে সেই প্যাটার্নটি ম্যাক করা ফাইলগুলি সরিয়ে কাজ করবে।
যদি আপনি zsh (1) ব্যবহার setopt extendedglob
করেন তবে .zshrc দিয়ে "বর্ধিত গ্লোববিং" চালু করুন । '** /' দিয়ে প্যাটার্নটির উপসর্গ রেখে পুনরাবৃত্তভাবে মুছে ফেলা হবে:
% আরএম-আরএফ ** / <প্যাটার্ন>
যাইহোক, যদি আছে অনেক ফাইল আপনি অবলম্বন করা উচিত মুছে ফেলতে এটি (1) সঙ্গে xargs (1) আমি করছেন সুপারিশ বা -exec, এবং শেল স্ক্রিপ্ট-এ যে।