আমি কীভাবে লিনাক্সের একটি নির্দিষ্ট তারিখের চেয়ে বড় ফাইলগুলি মুছব


4

মাঝে মাঝে আমি একটি সংরক্ষণাগারটিকে ভুল ফোল্ডারে বের করে আনতে চাই এবং সরিয়ে নেওয়া ফাইলগুলি সরাতে বা মুছতে চাই।

কমান্ড লাইনের মাধ্যমে এটি করার সহজতম উপায় কী? আরএম-তে থাকা এক্সট্রাকশন সময় এবং পাইপের চেয়ে নতুন যে ফাইলগুলি আমি একরকম অনুসন্ধান করতে পারি?

ধন্যবাদ

উত্তর:


12

সম্পাদনা: মন্তব্যে উল্লিখিত হিসাবে, tarসংরক্ষণাগারটিতে তারিখগুলির সাথে মিলের জন্য এক্সট্রাক্ট করা ফাইলগুলির এমটাইম এবং সিটাইম সংশোধন করে, সুতরাং -mপতাকা উত্তোলনের সময় পতাকা ব্যবহার না করা হলে এই প্রথম পদ্ধতিটি কাজ করবে না । শেষ পদ্ধতিটি সর্বোত্তম, তবে যদি ফাইলের নাম সংঘর্ষ হয় তবে আপনি চান ফাইলগুলি মুছতে পারে।

findএকটি সমর্থন -newer fileপতাকা, চেয়ে নতুন ফাইল হবে উল্লেখ ফাইলtouchকোনও ফাইলের অ্যাক্সেস / সময় পরিবর্তন করার জন্য একটি-টি যুক্তি রয়েছে। সুতরাং প্রায় 7:25:30 অপরাহ্নের মধ্যে সংঘটিত ওফস ঠিক করতে:

$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp

এবং আপনি যদি নিশ্চিত হন যে সঠিক ফাইলগুলি প্রদর্শন করেছে:

$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v

একটি বিকল্প হ'ল সবেমাত্র সংরক্ষণাগারে তালিকাভুক্ত সমস্ত ফাইল মুছে ফেলা:

$ tar tfz whoops.tar.gz | xargs rm -v

(+1) শেষ বিকল্পটি সেরা। ওপি যা মনে রেখেছিল তার চেয়ে এটি নিরাপদ এবং সুন্দর।
নাগুল

প্রশ্ন: মূল ফাইলগুলির পরিবর্তিত সময়টিকে কি সেট করবে না? তার তুলনার সময় সেই পরিবর্তিত সময় (বনাম পরিবর্তন সময়?) ব্যবহার করবেন না?
এরিক্সলা

ধন্যবাদ! আমি এটি করার শেষ উপায়টি ব্যবহার করেছি। সংরক্ষণাগারটি আসলে একটি জিপ ছিল তাই আমি জিপিনফো -১ ব্লাহ.জিপ করেছিলাম xargs আরএম-ভি
তারস্কি

@ এরিক্সলা ইয়ুপ, বিষয়টি মনে হয় না। tarআপনি -mপতাকা ব্যবহার না করে সংরক্ষণাগারগুলি থেকে তারিখগুলি সংরক্ষণ করবেন । সুতরাং, প্রথম পদ্ধতিটি সাধারণ নিয়ম হিসাবে কাজ করবে না।
আনিকা ব্যাকস্ট্রোম

2

সন্ধানের সাথে আরেকটি বিকল্প:

$ find "/path/to_clean/" -type f -mtime +30 -print0 | xargs -0 rm -f

যেখানে +30 রাখতে চান আপনি কত দিন রাখতে চান।

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