গতি বাড়ানোর কোনও উপায় আছে কি?


15

আমি ভাবছি যে findটার্মিনালে গতি বাড়ানোর কোনও উপায় আছে , এটি কোনও অর্থবোধ করে না যে ইন্টারনেট গুগল অনুসন্ধানের জন্য স্থানীয় স্ট্রিংগুলির জন্য অনুসন্ধান বা কেবল ফাইলের নামের চেয়ে ভাল গতি হবে have

আমি অবাক হচ্ছি যে একবারে একটি স্থানীয় ইনডেক্সিং বেস তৈরি করার উপায় আছে, ভবিষ্যতে, ফাইন্ড কমান্ডটি অতি দ্রুততর হতে পারে।

নাকি অন্য কোন পরামর্শ?

ধন্যবাদ!


আপনি কি আপনার অপারেটিং সিস্টেম এবং / অথবা বিতরণ দিয়ে আপনার পোস্টটি সম্পাদনা করতে পারবেন?
Jodie সি

উত্তর:


15

ব্যবহার করার চেষ্টা করুন locate, এটি আপনার যা করা উচিত তা করা উচিত।


13
এটির উত্তরটি আরও কিছুটা বের করার জন্য এটি একটি ভাল ধারণা। locate(সাধারণত slocate) কোন প্যাকেজটি আসে তা উল্লেখ এবং updatedbডিবি পুনর্নির্মাণের জন্য ব্যবহার করার মতো । :-)
প্যাট্রিক

1
এটি ইনডেক্সিং বন্ধ করে পার্টিশনের জন্য কাজ করে না। উদাহরণস্বরূপ এনটিএফএস পার্টিশনগুলি খারাপ কর্মক্ষমতা থেকে ভুগছে যদি সূচীকরণ সক্ষম হয়, সুতরাং এটি "এটি যেমন করা উচিত" এর জন্য কাজ করবে না।
ojrask

9

এটি আপনার অনুসন্ধানের মানদণ্ড কী তার উপর অনেক বেশি নির্ভর করে।

আপনি যদি ফাইলের নাম বা ফাইলের নামের নিদর্শনগুলি অনুসন্ধান করেন তবে অবস্থানটি দ্রুততর তবে তাজা উত্পন্ন ফাইলগুলির জন্য উপযুক্ত নয়, যেহেতু ব্যবহৃত সূচকটি সাধারণত প্রতিদিন একবারে আপডেট হয়। আপনি যদি এটি ব্যবহার করতে পারেন তবে এটি সুপার দ্রুত।

তবে এটির সাহায্যে আপনি ফাইলের আকার, ফাইলের বয়স এবং অন্যান্য জিনিসগুলি অনুসন্ধান করতে পারেন যা সনাক্ত করে অনুসন্ধানযোগ্য নয়।

আপনি কোথায় কোথায় অনুসন্ধান করবেন তা যদি আপনি জানেন তবে আপনি অনুসন্ধানের সুযোগটি সীমিত করার জন্য পাথটি ব্যবহার করতে পারেন :

find /some/path -size -10M -size +2M -mtime -365 ...

কেবল 2 থেকে 10 এম পর্যন্ত ফাইলগুলি অনুসন্ধান করবে, / কিছু / পথে সর্বোচ্চ 1 বছর বয়সী old

প্রোগ্রামে, যে পথে পাওয়া যায় সেগুলি অনুসন্ধান করে, যার সাহায্যে, সহায়তা, lib এবং যেখানে কনফিগারেশন ফাইল রয়েছে। উদাহরণ:

which java
/usr/bin/java

whereis firefox 
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/firefox /usr/share/man/man1/firefox.1.gz

7

ব্যবহার locate

কারণটি হ'ল ইতিমধ্যে নির্মিতlocate সমস্ত ডিরেক্টরি এবং ফাইলগুলির একটি ডাটাবেস যা আপনার কল্পনার মতো তৈরি হয়েছে !
http://linux.about.com/od/commands/l/blcmdl5_locatedb.htm

কিছু সেট (এবং পরিবর্তনীয়) ব্যবধানে, একটি কাজ রান ফাইল ফাইল স্ক্যান করে এবং এর সাথে এটি একটি ডাটাবেস তৈরি করে। তারপরে এই উপযুক্ত ডাটাবেস (অবস্থিত) এর উপযুক্ত সূচকগুলি রয়েছে যে সেই locateসময়ে আপনার হার্ড ড্রাইভের মাধ্যমে স্ক্যান করার পরিবর্তে কমান্ডটি বিপরীতে চলে।

সুতরাং উল্টোটি এটি একটি হার্ড ড্রাইভ স্ক্যানের তুলনায় খুব দ্রুত। খারাপ দিকটি হ'ল সনাক্ত করা ডাটাবেস (অবস্থিত) 'লাইভ' নয় তাই কেবলমাত্র সর্বশেষ স্ক্যান হিসাবে থাকা 'ফাইলগুলির জন্য ব্যবহার করা যেতে পারে।

এখন অবস্থিত আপডেট আপডেট করুন updatedb(বা sudo updatedbপ্রয়োজনে)

বিটিডব্লিউ আমি স্রেফ sudo updatedbস্থানীয়ভাবে দৌড়েছি এবং এটি 3/2 সেকেন্ড সময় নিয়েছে! আমার কাছে 31,000 ফাইল রয়েছে।


1

অন্যরা যেমন উল্লেখ করেছে, সন্ধানকারী সহজ অনুসন্ধানকারীর জন্য আরও ভাল সরঞ্জাম হতে পারে।

তবে আরও জটিল অনুসন্ধানের জন্য আপনি সম্ভবত অনুসন্ধানে আটকে রয়েছেন।

অনুসন্ধানের গতি বাড়ানোর একটি উপায় হ'ল সমস্ত রুট ডিরেক্টরি অনুসন্ধান করার পরিবর্তে আপনার ফাইলগুলি যে ডিরেক্টরিতে রয়েছে তা সংকুচিত করা।


0

একক অনুসন্ধানের জন্য; আমি কোনও স্পিডআপ পাইনি; findবিকল্পগুলি ব্যবহার করে অনুসন্ধানকে সঙ্কুচিত করার চেষ্টা না করা পর্যন্ত ।

যাহোক; যদি আপনি একই সেট ফাইলে একাধিক findক্রিয়াকলাপ করতে চান ; আমি একটি উল্লেখযোগ্য স্পিডআপ পেয়েছি সমস্ত ফাইলের নাম এবং ব্যবহার সহ একটি অস্থায়ী ফাইল পপুলেট করা grep। অবশ্যই এটি যোগ করা বা মুছে ফেলা ফাইলগুলিতে বিবেচনা করে না।

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