searchfs
هي أداة سطر أوامر لنظام التشغيل macOS للبحث بسرعة حسب اسم الملف على وحدات تخزين APFS وHFS+ بأكملها. يتم البحث على مستوى برنامج التشغيل باستخدام كتالوج نظام الملفات. وهذا يعني أنه يمكن فحص شجرة دليل المجلد بشكل أسرع بكثير من البحث القياسي عن اسم الملف المتكرر باستخدام find
.
البحث غير حساس لحالة الأحرف بشكل افتراضي. تتم طباعة الملفات المطابقة على الإخراج القياسي بالترتيب الموجود في الكتالوج. راجع صفحة الرجل للحصول على التفاصيل.
KatSearch هو تطبيق macOS رسومي أصلي مبني على أعلى searchfs
.
git clone https://github.com/sveinbjornt/searchfs.git
cd searchfs
make
make install
تثبيت الملف الثنائي في /usr/local/bin/
. تنتقل صفحة الرجل إلى /usr/local/share/man/man1/
.
وفقًا للمعايير التي قمت بها، يعمل searchfs
بشكل أسرع بنسبة 35-50% تقريبًا من find
في أنظمة ملفات APFS وأسرع عدة مرات على HFS+.
فيما يلي النتائج المعيارية لجهاز Retina MacBook Pro موديل 2012 المزود بمحرك SSD سعة 512 جيجابايت مزود من Apple والذي يشغل نظام ملفات APFS الذي يحتوي على حوالي 2 مليون ملف:
$ time searchfs " something "
0,01s user 33,15s system 32% cpu 1:23,59 total
$ time find / -name " *something* "
9,53s user 67,64s system 49% cpu 2:37,39 total
على الرغم من أنني لم أختبر هذا بشكل صحيح بعد، فمن المحتمل أن يكون searchfs
أسرع بكثير من find
على محركات الأقراص الثابتة، والتي تتطلب أوقات بحث أعلى. كما أنه سريع جدًا بالفعل على أنظمة الملفات التي تحتوي على عدد صغير من الملفات.
أضافت Apple بحث كتالوج نظام الملفات إلى نظام التشغيل Mac OS مع تقديم نظام الملفات الهرمي (HFS) في عام 1985. استبدل HFS بنية الجدول المسطح السابقة في نظام ملفات MFS القديم بملف كتالوج باستخدام بنية B-tree. على عكس نظام الملفات FAT الخاص بنظام Windows، قام نظام HFS (والإصدار الأحدث، HFS+) بترتيب شجرة الدليل بأكملها في ملف واحد كبير على القرص، مع عقد مترابطة لا تتطابق مع بنية المجلد الهرمية. وهذا يعني أنه يمكن البحث في المجلدات بسرعة كبيرة بغض النظر عن حجمها.
كشف نظام التشغيل Mac OS الكلاسيكي عن هذه الوظيفة عبر وظيفة FSCatalogSearch()، والتي تم تكرارها بكفاءة عبر العقد، وبالتالي تقليل أوقات البحث عن القرص. في عصر ما قبل SSD، أعطى هذا لنظام التشغيل Mac ميزة أداء كبيرة مقارنة بنظام التشغيل Windows عندما يتعلق الأمر بالبحث بالحجم الكامل. لفترة طويلة، استمر FSCatalogSearch في التوفر في نظام التشغيل Mac OS X / macOS عبر Carbon APIs ولكن تم إهماله الآن ولا يدعم APFS، نظام الملفات الجديد من Apple.
ومع ذلك، يتوفر البحث في الكتالوج لكل من HFS+ وAPFS في مكتبات نظام داروين ذات المستوى المنخفض عبر وظيفة searchfs(). يستخدم برنامج searchfs
هذه الوظيفة.
حقوق الطبع والنشر © 2017-2020 Sveinbjorn Thordarson <[email protected]>
يُسمح بإعادة التوزيع والاستخدام في النماذج المصدرية والثنائية، مع أو بدون تعديل، بشرط استيفاء الشروط التالية:
يجب أن تحتفظ عمليات إعادة توزيع التعليمات البرمجية المصدر بإشعار حقوق الطبع والنشر المذكور أعلاه وقائمة الشروط هذه وإخلاء المسؤولية التالي.
يجب أن تقوم عمليات إعادة التوزيع في شكل ثنائي بإعادة إنتاج إشعار حقوق النشر أعلاه وقائمة الشروط وإخلاء المسؤولية التالي في الوثائق و/أو المواد الأخرى المقدمة مع التوزيع.
لا يجوز استخدام اسم صاحب حقوق الطبع والنشر ولا أسماء المساهمين فيه لتأييد أو الترويج للمنتجات المشتقة من هذا البرنامج دون الحصول على إذن كتابي مسبق محدد.
يتم توفير هذا البرنامج من قبل أصحاب حقوق الطبع والنشر والمساهمين "كما هو" ويتم إخلاء المسؤولية عن أي ضمانات صريحة أو ضمنية، بما في ذلك، على سبيل المثال لا الحصر، الضمانات الضمنية لقابلية التسويق والملاءمة لغرض معين. لا يتحمل صاحب حقوق الطبع والنشر أو المساهمين بأي حال من الأحوال المسؤولية عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو نموذجية أو تبعية (بما في ذلك، على سبيل المثال لا الحصر، شراء السلع أو الخدمات البديلة؛ فقدان الاستخدام، البيانات، أو الأرباح؛ أو انقطاع الأعمال) مهما كان السبب وعلى أي نظرية للمسؤولية، سواء في العقد أو المسؤولية الصارمة أو الضرر (بما في ذلك الإهمال أو غيره) الذي ينشأ بأي طريقة من الطرق عن استخدام هذا البرنامج، حتى لو تم النصح بهذا الاحتمال. من مثل هذه الأضرار.