আমাকে NAME
ডিরেক্টরি ট্রিতে নামের সাথে শুরু হওয়া সমস্ত ফাইল সন্ধান করতে হবে এবং একটি শেল কমান্ড ব্যবহার করে এই ফাইলগুলি সরিয়ে ফেলতে হবে।
আমাকে NAME
ডিরেক্টরি ট্রিতে নামের সাথে শুরু হওয়া সমস্ত ফাইল সন্ধান করতে হবে এবং একটি শেল কমান্ড ব্যবহার করে এই ফাইলগুলি সরিয়ে ফেলতে হবে।
উত্তর:
নামের মধ্যে থাকা সমস্ত ফাইল মুছতে --- আপনি ব্যবহার করতে পারেন
find -name . 'name*' -exec rm {} \;
grep
একটি -exec
সুইচ আছে?
বর্তমান ডিরেক্টরি এবং এর উপ ডিরেক্টরিগুলির সমস্ত ফাইল মুছুন যেখানে ফাইলের নাম "foo" দিয়ে শুরু হয়:
$ find . -type f -name foo\* -exec rm {} \;
এনবি: সাবধানতার সাথে ব্যবহার করুন - প্রথমে ব্যাক আপ করুন - এছাড়াও প্রথমে একটি শুকনো রান করুন, যেমন
$ find . -type f -name foo\*
মুছে ফেলা হবে এমন ফাইলগুলির নাম কেবল আপনাকে বলবে।
find . -type f -name foo\* -delete
কৌশলটি করেছিলেন
আমি এইভাবে চেষ্টা করেছি এটি আমার পক্ষে কমান্ডের নীচে চেষ্টা করছে।
rm -rf Example*
এখানে "উদাহরণ" হ'ল পাঠ্য যা সমস্ত ফাইলের জন্য সাধারণ।
আপনি ব্যবহার করতে পারেন find
:
find . -name "name*" -exec rm {} \;
সঙ্গে globstar
বিকল্প (সঙ্গে সক্ষম shopt -s globstar
):
rm -f **/NAME*
**/
বিস্তৃতি করার ./
, */
, */*/
, */*/*/
ইত্যাদি আপনি যদি একটি থাকে তাহলে ডিরেক্টরির দিয়ে শুরু নাম NAME
, কমান্ড অভিযোগ করবে rm
ডিরেক্টরি সরাতে পারে না, কিন্তু এটাই শেষ কথা।
লক্ষ্য করুন যে গ্লোব অনেকগুলি ফাইলের সাথে মেলে তবে এটি কমান্ড লাইনের দৈর্ঘ্যের সীমাবদ্ধতায় চলে যেতে পারে।
বিকল্প হিসাবে, rm
যতটা সম্ভব কম কয়েকটি অনুরোধ সহ , তবে কোনও কমান্ড লাইনের দৈর্ঘ্যের সীমাবদ্ধতার সাপেক্ষে নয়:
find . -type f -name 'NAME*' -exec rm -f {} +
( বিবৃতিটি বন্ধ করার +
পরিবর্তে লক্ষ্য করুন ))\;
-exec
find . -name 'foo'* -type f -delete
সহজ উত্তর মত মনে হচ্ছে।
-delete
কোন ফাইলটি মুছে ফেলা হবে তা দেখার আগে আপনি পতাকা ছাড়াই এটি চালাতে পারেন ।
ফাইল / ফোল্ডারের "আইনের" নম্বরটি অনুসন্ধান করুন এবং তারপরে ইনোড নম্বরটি ব্যবহার করে মুছুন। নীচে একটি উদাহরণ দেওয়া হল:
ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p
find . -inum 3407873 -exec rm -rf {} \;