plocate - ابحث عن الملفات بالاسم، بسرعة
ملخص
plocate [خيار]... النمط...
الوصف
يبحث plocate عن جميع الملفات الموجودة في النظام التي تطابق النمط المحدد (أو جميع الأنماط إذا تم إعطاء أنماط متعددة). يفعل ذلك عن طريق استخدام فهرس تم إنشاؤه بواسطة updatedb(8) أو (بشكل أقل شيوعًا) تم تحويله من فهرس آخر بواسطة plocate-build(8).
plocate متوافق إلى حد كبير مع mlocate(1) من حيث الوسائط، ولكنه أسرع بكثير. على وجه الخصوص، نادرًا ما يحتاج إلى فحص قاعدة البيانات بأكملها، إلا إذا كان النمط قصيرًا جدًا (أقل من ثلاثة بايت) أو كنت تريد البحث عن تعبير عادي. لا يحاول الحفاظ على التوافق مع BSD locate، أو أسماء الملفات أو اللغات غير UTF-8. تتم معظم عمليات الإدخال/الإخراج بشكل غير متزامن، ولكن يتم مزامنة النتائج بحيث يظهر الإخراج بنفس الترتيب في كل مرة.
عند إعطاء أنماط متعددة، سيبحث plocate عن الملفات التي تطابق جميعها. هذا هو التناقض الرئيسي مع mlocate(1)، الذي يبحث عن الملفات التي تطابق نمطًا واحدًا أو أكثر، إلا إذا تم إعطاء الخيار -A.
افتراضيًا، يتم اعتبار الأنماط عبارة عن سلاسل فرعية للبحث عنها. إذا تم إعطاء حرف واحد أو أكثر من أحرف الـ glob (\*، ؟ أو []) غير المهرب، فيتم اعتبار هذا النمط بدلاً من ذلك نمط glob (وهذا يعني أنه يجب أن يبدأ وينتهي بعلامة \* لمطابقة السلسلة الفرعية). إذا تم إعطاء --regexp، فيتم اعتبار الأنماط بدلاً من ذلك تعبيرات منتظمة أساسية لـ POSIX (غير مثبتة)، وإذا تم إعطاء --regex، فيتم اعتبار الأنماط تعبيرات منتظمة ممتدة لـ POSIX. كل هذا يتطابق مع سلوك mlocate(1).
مثل mlocate(1)، يعرض plocate جميع الملفات المرئية للمستخدم الذي يستدعي الأمر (عن طريق امتلاك أذونات قراءة وتنفيذ على جميع الدلائل الأصل)، ولا يعرض أي ملفات غير مرئية، عن طريق التشغيل مع تعيين بت setgid للوصول إلى الفهرس (الذي يتم إنشاؤه كـ root)، ولكن عن طريق اختبار الرؤية كالمستخدم الذي يستدعي الأمر.
حالة الخروج
يخرج plocate بالقيمة 0 للإشارة إلى أنه تم العثور على تطابق أو أنه تم تمرير --help أو --version. بخلاف ذلك، يخرج plocate بقيمة حالة 1، مما يشير إلى حدوث خطأ أو عدم العثور على أي تطابقات.
الخيارات
-A، --all
يتم تجاهله من أجل التوافق مع mlocate(1).
-b، --basename
يطابق فقط مع جزء اسم الملف من اسم المسار، أي يتم استبعاد أسماء الدلائل من المطابقة (ولكن لا يزال يتم عرضها). هذا لا يسرع البحث، ولكنه يمكن أن يمنع التطابقات غير المرغوب فيها.
-c، --count
لا تقم بطباعة كل تطابق. بدلاً من ذلك، قم بعدها، واطبع العدد الإجمالي في النهاية.
-d، --database DBPATH
ابحث عن التطابقات في قاعدة البيانات المحددة، بدلاً من /var/lib/plocate/plocate.db. يمكن إعطاء هذا الوسيط عدة مرات، للبحث في قواعد بيانات متعددة. من الممكن أيضًا إعطاء قواعد بيانات متعددة في وسيط واحد، مفصولة بـ :. (يمكن إدراج أي حرف، بما في ذلك : و \، عن طريق وضعه قبل شرطة مائلة للخلف \).
-e, --existing
اطبع فقط الإدخالات التي تشير إلى الملفات الموجودة في وقت تشغيل الأمر locate. لاحظ أنه على عكس mlocate(1)، لا يتم تتبع الروابط الرمزية افتراضيًا (ولا توجد خيارات لتغيير ذلك).
-i, --ignore-case
قم بإجراء مطابقة غير حساسة لحالة الأحرف وفقًا للإعدادات المحلية الحالية (افتراضيًا تكون المطابقة حساسة لحالة الأحرف، ومطابقة بايت تلو الآخر). لاحظ أن plocate لا يدعم النطاق الكامل لقواعد طي حالة الأحرف Unicode؛ على وجه الخصوص، فإن البحث عن "ß" لن يعطيك نتائج تطابق "ss" حتى في الإعدادات المحلية الألمانية. لاحظ أيضًا أن هذا الخيار سيكون أبطأ قليلاً من المطابقة الحساسة لحالة الأحرف، لأنه يحتاج إلى إنشاء المزيد من المرشحين للبحث في الفهرس.
-l, --limit LIMIT
توقف عن البحث بعد العثور على LIMIT من النتائج. إذا تم إعطاء الخيار --count، فسيكون الرقم المطبوع في الحد الأقصى هو LIMIT.
-N, --literal
اطبع أسماء الإدخالات دون استخدام علامات الاقتباس. عادةً، سيقوم plocate بإضافة علامات اقتباس للأحرف الخاصة في أسماء الملفات، بحيث تكون آمنة للاستخدام بواسطة الأوامر الشائعة في shell (على غرار نمط علامات الاقتباس "shell-escape-always" في GNU coreutils)، إلا إذا كان يتم الطباعة إلى قناة، ولكن هذا الخيار سيعطل هذه العلامات.
-0, --null
بدلاً من كتابة سطر جديد بعد كل نتيجة، اكتب حرف NULL (ASCII 0). هذا مفيد لإنشاء مخرجات غير مبهمة عند معالجتها بواسطة أدوات أخرى (مثل xargs(1))، حيث يُسمح بوجود أسطر جديدة مضمنة في أسماء الملفات.
-r, --regexp
يتم التعامل مع الأنماط على أنها تعبيرات نمطية أساسية POSIX. راجع regex(7) لمزيد من المعلومات. لاحظ أن هذا يجبر على إجراء مسح خطي عبر قاعدة البيانات بأكملها، وهو أمر بطيء.
--regex
مثل --regexp، ولكن يتم التعامل مع الأنماط بدلاً من ذلك على أنها تعبيرات نمطية ممتدة POSIX.
-w, --wholename
قم بالمطابقة مع اسم المسار بأكمله. هذا هو الوضع الافتراضي، لذلك ما لم يتم إعطاء الخيار -b أولاً (انظر أعلاه)، فلن يفعل أي شيء. وبالتالي، فإن هذا الخيار موجود فقط من أجل التوافق مع mlocate(1).
--help اطبع معلومات حول كيفية استخدام الأمر، ثم اخرج بنجاح.
--version اطبع معلومات حول إصدار البرنامج، ثم اخرج بنجاح.
البيئة
LOCATE_PATH
إذا تم إعطاؤه، فسيتم إضافته بعد قائمة مسارات --database (سواء تم إعطاء مسار صريح أم لا). يتبع تحديد الفاصلة وهروب الأحرف نفس القواعد المطبقة في الخيار --database.
المؤلف
Steinar H. Gunderson <__>
انظر أيضًا
plocate-build(8)، mlocate(1)، updatedb(8)