LOCATEDB(5)

الاسم
locatedb - قاعدة بيانات أسماء ملفات مضغوطة أماميًا

الوصف
توثق صفحة الدليل هذه تنسيق قواعد بيانات أسماء الملفات لإصدار GNU من locate. تحتوي قواعد بيانات أسماء الملفات على قوائم الملفات التي كانت موجودة في أشجار أدلة معينة عند آخر تحديث لقواعد البيانات.

يمكن أن توجد قواعد بيانات متعددة. يمكن للمستخدمين اختيار قواعد البيانات التي يبحث فيها locate باستخدام متغير بيئة أو خيار سطر أوامر؛ انظر locate(1). يمكن لمسؤول النظام اختيار اسم ملف قاعدة البيانات المبدئية، وتكرار تحديث قواعد البيانات، والأدلة التي تحتوي على إدخالات لها. عادةً، تُحدّث قواعد بيانات أسماء الملفات بتشغيل برنامج updatedb بشكل دوري، عادةً ليلاً؛ انظر updatedb(1).

تنسيق قاعدة بيانات GNU LOCATE02
هذا هو التنسيق المبدئي لقواعد البيانات التي ينتجها updatedb. يشغل برنامج updatedb برنامج frcode لضغط قائمة أسماء الملفات باستخدام الضغط الأمامي، مما يقلل حجم قاعدة البيانات بعامل يتراوح بين 4 و5. يعمل الضغط الأمامي (المعروف أيضًا باسم الترميز التزايدي) على النحو التالي.

إدخالات قاعدة البيانات هي قائمة مرتبة (بدون تمييز بين الأحرف الكبيرة والصغيرة، لراحة المستخدمين). نظرًا لأن القائمة مرتبة، فمن المحتمل أن يشارك كل إدخال بادئة (سلسلة أولية) مع الإدخال السابق. يبدأ كل إدخال في قاعدة البيانات ببايت عدد الفرق الإزاحي الموقّع، وهو العدد الإضافي من أحرف البادئة للإدخال السابق لاستخدامه بعد العدد الذي يستخدمه الإدخال السابق من سابقه. (يمكن أن تكون الأعداد سالبة.) يتبع العدد باقي ASCII منتهي بقيمة خالية — الجزء من الاسم الذي يتبع البادئة المشتركة.

إذا كان عدد الفرق الإزاحي أكبر مما يمكن تخزينه في بايت موقّع (±127)، فإن البايت له القيمة 0x80 (ثنائي 10000000) ويتبع العدد الفعلي في كلمة من 2 بايت، مع البايت العالي أولاً (ترتيب بايتات الشبكة). يمكن أن يكون هذا العدد سالبًا أيضًا (بت الإشارة في أول البايتين).

تبدأ كل قاعدة بيانات بإدخال وهمي لملف يسمى `LOCATE02'، والذي يتحقق منه locate لضمان أن ملف قاعدة البيانات له التنسيق الصحيح؛ يتجاهل الإدخال عند إجراء البحث.

لا يمكن دمج قواعد البيانات معًا، حتى لو تم اقتطاع الإدخال الأول (الوهمي) من جميع قواعد البيانات باستثناء الأولى. وذلك لأن عدد الفرق الإزاحي في الإدخال الأول لقاعدة البيانات الثانية واللاحقة سيكون خاطئًا.

في المستقبل، قد لا تكون البيانات داخل قاعدة بيانات locate مرتبة بأي ترتيب معين. للحصول على نتائج مرتبة، قم بتوجيه مخرجات locate عبر sort -f.

تنسيق قاعدة بيانات slocate
يستخدم برنامج slocate تنسيق قاعدة بيانات مشابهًا، ولكن ليس مطابقًا تمامًا، لـ GNU locate. يحدد البايت الأول من قاعدة البيانات مستوى الأمان الخاص بها. إذا كان مستوى الأمان هو 0، فسيقرأ slocate ويطابق ويطبع أسماء الملفات بناءً على المعلومات الموجودة في قاعدة البيانات فقط. ومع ذلك، إذا كان بايت مستوى الأمان هو 1، فإن slocate يحذف الإدخالات من مخرجاته إذا كان المستخدم المستدعي غير قادر على الوصول إليها. البايت الثاني من قاعدة البيانات هو صفر. يتبع البايت الثاني أول إدخال في قاعدة البيانات. لا يسبق الإدخال الأول في قاعدة البيانات أي عدد تفاضلي أو إدخال وهمي. بدلاً من ذلك، يُفترض أن العدد التفاضلي للعنصر الأول هو صفر.

بدءًا من الإدخال الثاني (إن وجد) في قاعدة البيانات، يتم تفسير البيانات كما في تنسيق GNU LOCATE02.

تنسيق قاعدة بيانات Locate القديم
يوجد أيضًا تنسيق قاعدة بيانات قديم، تستخدمه برامج Unix locate و find والإصدارات السابقة من برامج GNU. يشغل updatedb برامج تسمى bigram و code لإنتاج قواعد بيانات بالتنسيق القديم. يختلف التنسيق القديم عن الوصف أعلاه بالطرق التالية. بدلاً من أن يبدأ كل إدخال ببايت عدد الفرق الإزاحي وينتهي بقيمة خالية، تشير قيم البايت من 0 إلى 28 إلى أعداد الفرق الإزاحي من -14 إلى 14. قيمة البايت التي تشير إلى أن عدد فرق إزاحي طويل يتبع هي 0x1e (30)، وليس 0x80. تُخزّن الأعداد الطويلة بترتيب بايتات المضيف، وهو ليس بالضرورة ترتيب بايتات الشبكة، وحجم كلمة العدد الصحيح للمضيف، والذي عادة ما يكون 4 بايتات. كما أنها تمثل عددًا أقل بمقدار 14 من قيمتها. لا تحتوي سطور قاعدة البيانات على بايت إنهاء؛ يُشار إلى بداية السطر التالي بقيمة بايته الأولى التي تكون ≤ 30.

بالإضافة إلى ذلك، بدلاً من البدء بإدخال وهمي، يبدأ تنسيق قاعدة البيانات القديم بجدول من 256 بايت يحتوي على 128 ثنائي جرام الأكثر شيوعًا في قائمة الملفات. الثنائي جرام هو زوج من البايتات المتجاورة. البايتات في قاعدة البيانات التي تحتوي على البت العالي المضبوط هي فهارس (مع مسح البت العالي) في جدول الثنائي جرام. يجعل ترميز الثنائي جرام وعدد الفرق الإزاحي هذه القواعد بيانات أصغر بنسبة 20–25% من التنسيق الجديد، لكنه يجعلها غير نظيفة 8 بت. يتم استبدال أي بايت في اسم ملف يقع في النطاقات المستخدمة للرموز الخاصة في قاعدة البيانات بعلامة استفهام، والتي ليست من قبيل الصدفة أنها حرف البدل في الصدفة لمطابقة حرف واحد.

مثال

Input to frcode:
/usr/src
/usr/src/cmd/aardvark.c
/usr/src/cmd/armadillo.c
/usr/tmp/zoo

طول أطول بادئة من الإدخال السابق للمشاركة:
0 /usr/src
8 /cmd/aardvark.c
14 rmadillo.c
5 tmp/zoo

المخرجات من frcode، مع تغيير القيم الخالية اللاحقة إلى أسطر جديدة وجعل بايتات الأعداد قابلة للطباعة:
0 LOCATE02
0 /usr/src
8 /cmd/aardvark.c
6 rmadillo.c
-9 tmp/zoo

(6 = 14 - 8, and -9 = 5 - 14)

التبليغ عن الأخطاء
مساعدة GNU findutils عبر الإنترنت: <https://www.gnu.org/software/findutils/#get-help>
أبلغ عن أي أخطاء ترجمة إلى <https://translationproject.org/team/>

أبلغ عن أي مشكلة أخرى عبر النموذج الموجود في متعقب علل GNU Savannah:
    <https://savannah.gnu.org/bugs/?group=findutils>
تُناقش الموضوعات العامة حول حزمة GNU findutils في القائمة البريدية bug-findutils:
    <https://lists.gnu.org/mailman/listinfo/bug-findutils>

حقوق النسخ
حقوق النشر © 1994–2024 مؤسسة البرمجيات الحرة، المحدودة. الترخيص GPLv3+: GNU GPL الإصدار 3 أو الأحدث <https://gnu.org/licenses/gpl.html>.
هذا برنامج حر: أنت حر في تغييره وإعادة توزيعه. لا يوجد أي ضمان، إلى المدى الذي يسمح به القانون.

انظر أيضًا
find(1)، locate(1)، xargs(1)، locatedb(5)

التوثيق الكامل <https://www.gnu.org/software/findutils/locatedb>
أو متاح محليًا عبر: info locatedb

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.