কোনও ফাইলের ফাইলের নামের তালিকাতে কমান্ড কার্যকর করতে কীভাবে?


11

আমি ফাইলগুলিতে মুছে ফেলার মতো ফাইলগুলির নাম তালিকাভুক্ত করেছি। কীভাবে আমি ফাইলটি rmকমান্ডে পাস করতে পারি যাতে এটি একে একে মুছে ফেলা যায়।


উত্তর:


11

আপনার যদি প্রতি লাইনে একটি ফাইল থাকে তবে তা করার একটি উপায় হ'ল:

tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --

ফাইল তালিকাটি trকমান্ডের ইনপুট হিসাবে দেওয়া হয় যা ফাইল বিভাজকটিকে লাইনফিড থেকে নাল বাইটে পরিবর্তন করে এবং কমান্ডটি ইনপুটটিতে নাল বাইট xargsদ্বারা পৃথক করা ফাইলগুলি পড়ে এবং আর্গুমেন্ট হিসাবে যুক্ত ফাইলগুলি সহ rm কমান্ড আরম্ভ করে।


1
আমি ন্যায়বিচারের rm --পরিবর্তে ব্যবহার করার পরামর্শ দিই rm, যাতে ড্যাশ দিয়ে শুরু হওয়া ফাইলের নামগুলি rmপরামিতি হিসাবে বিবেচনা করা হবে না ।
আরটিম

এটি বন্ধু হিসাবে কাজ করে নি ........ tr: অতিরিক্ত অপারেন্ড monu.txt' Try ট্র - হেল্প 'আরও তথ্যের জন্য। আরএম: নিখোঁজ অপরেন্ড আরও তথ্যের জন্য `rm --help 'চেষ্টা করুন। ........ আমি দেখতে পেলাম এটাই সমস্ত
মনু

1
আপনি সম্ভবত ফাইলের নামের আগে মিস করেছেন?
জোনাস বার্লিন

আমি xargs কমান্ডটিও কিছুটা উন্নত করেছি - যোগ করা হয়েছে - @artyom এর পরামর্শ অনুসারে এবং যোগ করা হয়েছে - r সরানোর জন্য কোনও ফাইল নেই তবে এটি আরএম চালায় না তা নিশ্চিত করার জন্য added
জোনাস বার্লিন

5

উপরের উত্তরটি ঠিক আছে যে এটি ফাঁকা স্থান এবং "অদ্ভুত ক্যার্যাকটারস" সহ ফাইলের নামগুলি হ্যান্ডেল করার ক্ষেত্রে অনেক বেশি যায়। তবে সরলতম উপায়, যদি ফাইলের নামগুলি বুদ্ধিমান হয় তবে তা কেবল (সতর্কতা, বাশিজম!):

rm $(< /the/file/with/names)

নিয়মিত শেলের জন্য:

rm `cat /the/file/with/names`
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.