আপনি বলতে যে, " ম জন্য বাঁশি বাজালাম মাথা সম্পূর্ণ একটি ভয়াবহ দীর্ঘ সময় লাগে।"
এর কারণটি নয় ls
, তবে আপনার ডিরেক্টরিতে থাকা ফাইলগুলির সংখ্যা। যদি আপনার একক ডিরেক্টরিতে ১০০,০০০ ফাইল থাকে তবে এই সমস্যাটি সমাধানের যে কোনও উপায়ে এটি বাছাই করা বা কোনও আউটপুট মুদ্রণের বিষয়ে চিন্তা করার আগে সমস্ত 100,000 ফাইল সম্পর্কে তথ্য পেতে হবে।
যদি এটি খুব বেশি সময় নেয় তবে আসল সমাধানটি হ'ল ফাইলগুলি একাধিক ডিরেক্টরিতে বিভক্ত করা।
আপনি যদি বেশ কয়েকটি ডিরেক্টরিতে ফাইলগুলি ছড়িয়ে দিতে না পারেন, তবে বিবেচনা করার জন্য ফাইলগুলির সংখ্যা সঙ্কুচিত করার কোনও উপায় আছে কি ? উদাহরণস্বরূপ, যদি ফাইলের নামগুলিতে একটি তারিখ অন্তর্ভুক্ত থাকে তবে সম্ভবত আপনি একটি ওয়াইল্ডকার্ড অন্তর্ভুক্ত করতে পারেন যাতে সিস্টেমকে 100,000 ফাইল বাছাই করতে না হয়। অথবা তারা ক্রমান্বয়ে সংখ্যাযুক্ত? (এটি সাহায্য করতে পারে বা নাও পারে তবে এটি চেষ্টা করার মতো)
আপনি কতবার এটি করার চেষ্টা করছেন? আবার এটি পুনরায় ব্যবহারের জন্য আউটপুট সংরক্ষণ / ক্যাশে করা উপযুক্ত ।
এখন, একটি প্রশ্ন।
তুমি নিশ্চিত আপনি কি বলতে চান "সৃষ্টি সময় 'এবং" পরিবর্তন সময়' ? বেশিরভাগ সরঞ্জাম কেবল "পরিবর্তনের সময়" প্রদর্শন করতে পারে, "তৈরির সময়" নয়।
"ক্রিয়েশন টাইম" পাওয়া খুব নতুন জিনিস, যার জন্য একটি ext4 ফাইল সিস্টেম প্রয়োজন এবং কিছু সরঞ্জাম যা ইনস্টল করা সহজ নয়।
চাইলে সময় বদলান
পরিবর্তনের সময় (সংক্ষেপে সিটিটাইম) এর অর্থ ফাইলের বৈশিষ্ট্যগুলি সর্বশেষ পরিবর্তিত হওয়া সময় time
ls -c
সিটাইম দ্বারা বাছাই।
আপনি আউটপুটটি আরোহী ক্রমে চান, উতরাই নয়, তাই -r
বিকল্পের সাথে আপনাকে আউটপুটও বিপরীত করতে হবে।
সুতরাং আপনি এটি এইভাবে করতে পারে:
ls -cr | head -n 100
ব্যবহার করে একই সমস্যার দীর্ঘতর সমাধান stat
:
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%Z\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
তবে ls -cr
এটি আমার সিস্টেমের চেয়ে ধীর গতিতে চলে ।
আপনি চান সময় পরিবর্তন
পরিবর্তনের সময় (সংক্ষিপ্ততার জন্য এমটাইম) অর্থ ফাইলের বিষয়বস্তু সর্বশেষ পরিবর্তিত হওয়া সময়।
ls -t
মাইটাইম অনুসারে বাছাই করে।
পরিবর্তন ls -cr
করার জন্য ls -tr
(ভাল বিকল্প) অথবা পরিবর্তন stat -c $'%Z\t%n'
করার জন্য stat -c $'%Y\t%n'
।
আপনার প্রয়োজন সময় সৃষ্টি
(সংক্ষিপ্ত জন্য crtime)
এটা শক্ত।
প্রথমে ডিরেক্টরিটি কোনও ফাইল সিস্টেমে রয়েছে তা ব্যবহার করে ফর্ম্যাট করা হয়েছে তা নিশ্চিত করুন ext4
। আপনি এটি tune2fs -l <device name>
পরীক্ষা করতে ব্যবহার করতে পারেন ।
তারপরে, একটি নতুন stat
বিন্যাস বলা হয় %W
, যা আপনাকে এখানে সহায়তা করতে পারে। এটি পেতে, আপনাকে অক্টোবর ২০১০ বা তার পরে প্রকাশিত জিএনইউ কোরিটিলসের একটি সংস্করণ ডাউনলোড করতে হবে, এটি এক্সট্রাক্ট করতে হবে, এটি সংকলন করতে হবে এবং ইনস্টল করতে হবে।
তারপরে, আপনার কার্নেলের উপর নির্ভর করে এটি কাজ করতে পারে (এটি চেষ্টা করে না)।
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%W\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
আরো দেখুন:
যদি আপনি সম্পর্কে ত্রুটি পেতে "'$\t'
'$\t'
স্বরলিপি প্রয়োজন bash
বা zsh
: এটা কাজ করবে না dash
বা sh
উবুন্টু উপর। আপনি সত্যিই যারা শাঁস ব্যবহার করতে হবে, তাহলে আপনি যেকোনো পরিবর্তন করতে হবে \t
করতে Ctrl+ + V, Tabএবং নেতৃস্থানীয় অপসারণ $
শুধু উদ্বোধনী উদ্ধৃতি আগে থেকে।
find -mtime +<number of days> -delete
একটি নির্দিষ্ট বয়সের চেয়ে পুরানো সমস্ত ফাইল পরিষ্কার করা। এর অর্থ কোনও প্রকারের প্রয়োজন নেই।