Xargs- এ ফাইন্ড-নেম পাইপিংয়ের ফলে ফাইলের নামগুলি ফাঁকা ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাঁকে ফাইলের নামগুলি পাওয়া যায়


26

সাধারণত তাদের ফাইলের নাম ফাঁকা করে ফাইলগুলি সরাতে আপনাকে চালাতে হবে:

$ rm "file name"

তবে আমি যদি একাধিক ফাইল মুছতে চাই, যেমন:

$ find . -name "*.txt" | xargs rm

এটি স্থানগুলিতে থাকা ফাইলগুলি মুছবে না।


এখানে সম্পূর্ণ অনুমান: find -name "*\ *.txt" | xargs rmদুটি শব্দ ফাইলের জন্য কাজ করে?
দ্য ওয়ান্ডারার

উত্তর:


49

আপনি বলতে findএবং xargsউভয় নাল টার্মিনেটর ব্যবহার করতে পারেন

find . -name "*.txt" -print0 | xargs -0 rm

বা (সরল) এর অন্তর্নির্মিত -deleteক্রিয়াটি ব্যবহার করুনfind

find . -name "*.txt" -delete

বা (ধন্যবাদ @ কোস)

find . -name "*.txt" -exec rm {} +

যার মধ্যে ARG_MAXকোনওটির প্রয়োজন ছাড়াই সিস্টেমের সীমাটিকে সম্মান করা উচিত xargs


1
দু'বার শক্ত ARG_MAXকরে find . -name "*.txt" -exec rm {} \;উঠতে পারে না :) যেহেতু আপনি উল্লেখ করেছেন আমি এটিও একটি "নিরাপদ শট" বলে উল্লেখ করব
কোস

3
এইভাবে মাস্টার বলেছেন: সর্বদা xargs -0 মনে রাখবেন।
জোশুয়া

1
অত্যন্ত গুরুত্বপূর্ণ পয়েন্ট: -print0অবশ্যই সর্বশেষ বিকল্প হতে হবে (বা কমপক্ষে পরে -name "*.txt") অন্যথায় এটি ফাইলগুলিকে আর সীমাবদ্ধ*.txt রাখবে না ...
কেভ

1

ঘটনাক্রমে, আপনি যদি সন্ধান ব্যতীত অন্য কিছু ব্যবহার করেন তবে নূতন বাইটগুলি দিয়ে নিউলাইনগুলি প্রতিস্থাপন করতে আপনি ট্র ব্যবহার করতে পারেন।

যেমন। নিম্নলিখিত একটি লাইনার একটি ডিরেক্টরিতে 10 টি সর্বশেষ সংশোধিত ফাইল মুছে ফেলবে, এমনকি যদি তাদের নামে ফাঁকা স্থান রয়েছে।

ls -tp | grep -v / | head -n 10 | tr "\n" "\0" | xargs -0 rm


হ্যাঁ, এটি কাজ করে।
পিটার মর্টেনসেন

0

Xargs কমান্ডটি ডিফল্টরূপে ডিলিমিটার হিসাবে ট্যাব, স্পেস এবং নতুন লাইন ব্যবহার করে। আপনি এটি -d বিকল্পের সাহায্যে কেবলমাত্র নতুন লাইন অক্ষর ('\ n') ব্যবহার করতে বলতে পারেন:

find . -name "*.txt" | xargs -d '\n' rm

উত্স উত্তর


সেই উত্তরে বিএসডি সিস্টেমগুলির ( -0পরিবর্তে ) পরিবর্তে উল্লেখ করা হয়েছে । উবুন্টু কী ব্যবহার করে? এখানে গৃহীত উত্তর ব্যবহার করে । সঠিক কি? -dxargs-0
পিটার মর্টেনসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.