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


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.