bfsالميزات • التثبيت • الاستخدام • المبنى • المساهمة • Changelog
bfs هو متغير من أمر unix find الذي يعمل على اتساع العرض بدلاً من العمق الأول . إنه متوافق مع العديد من إصدارات find ، بما في ذلك
Posix • GNU • FreeBSD • OpenBSD • Netbsd • MacOS
إذا لم تكن على دراية بـ find ، فإن دليل GNU Find يوفر مقدمة جيدة.
bfs على اتساع العرض ، والتي تجد عادة الملف (الملفات) التي تبحث عنها بشكل أسرع.تخيل شجرة الدليل التالية:
كومة قش
├ عميق
│ └ 1
│ └ 2
│ └ 3
│ └ 4
│ └ ...
└ ضحلة
└ الإبرة
سوف تستكشف find الشجرة deep بأكملها قبل أن تصل إلى الشجرة shallow التي تحتوي على ما تبحث عنه. من ناحية أخرى ، يسرد bfs الملفات من أسرف إلى أعمق ، لذلك لا تضطر أبدًا إلى الانتظار حتى تستكشف شجرة فرعية غير ذات صلة بالكامل.
bfs | find |
|---|---|
$ bfs haystack
haystack
haystack/deep
haystack/shallow
haystack/deep/1
haystack/shallow/needle
... | $ find haystack
haystack
haystack/deep
haystack/deep/1
haystack/deep/1/2
haystack/deep/1/2/3
haystack/deep/1/2/3/4
...
haystack/shallow
haystack/shallow/needle |
bfs أن تكون أسهل في الاستخدام من find ، بينما تظل متوافقة. على سبيل المثال ، bfs أقل إرضاء حول المكان الذي تضع فيه حججها:
bfs | find |
|---|---|
$ bfs -L -name ' needle ' haystack
haystack/needle
$ bfs haystack -L -name ' needle '
haystack/needle
$ bfs -L haystack -name ' needle '
haystack/needle | $ find -L -name ' needle ' haystack
find: paths must precede expression: haystack
$ find haystack -L -name ' needle '
find: unknown predicate `-L'
$ find -L haystack -name ' needle '
haystack/needle |
bfs يعطي أخطاء وتحذيرات مفيدة. على سبيل المثال ، ستكتشف bfs وتقترح تصحيحات للأخطاء المطبعية:
$ bfs -nam needle
bfs: error: bfs -nam needle
bfs: error: ~~~~
bfs: error: Unknown argument; did you mean -name? يتضمن bfs أيضًا تحليلًا ثابتًا قويًا للمساعدة في مراقبة الأخطاء:
$ bfs -print -name ' needle '
bfs: warning: bfs -print -name needle
bfs: warning: ~~~~~~~~~~~~
bfs: warning: The result of this expression is ignored.bfs بعض الخيارات التي تجعل المهام الشائعة أسهل. على سبيل المثال ، يتخطى المشغل -exclude عبر الأشكال الفرعية بأكملها كلما يتطابق التعبير. -exclude أكثر قوة وأسهل في الاستخدام من العمل -prune ؛ يقارن
$ bfs -name config -exclude -name .git
إلى ما يعادل
$ find ! (-name .git -prune ) -name config
كاختزال إضافي ، يتخطى -nohidden على جميع الملفات والأدلة المخفية. راجع وثائق الاستخدام لمعرفة المزيد عن الامتدادات التي توفرها bfs .
bfs بالفعل لنظام التشغيل الخاص بك.| Linux | ماكوس |
|---|---|
جبال الألب لينكس # APK إضافة BFS قوس لينكس # Pacman -S BFS ديبيان/أوبونتو # apt تثبيت BFS فيدورا لينكس # DNF تثبيت BFS جنتو # تظهر sys-apps/bfs GNU GUIX # GUIX تثبيت BFS نيكسوس # nix -env -i bfs Linux باطلة # xbps -install -s bfs | البيرة $ BREW تثبيت BFS macports # منفذ تثبيت BFS |
| BSD | |
FreeBsd # PKG تثبيت BFS OpenBSD # PKG_ADD BFS |
bfs من المصدر ، قد تحتاج إلى تثبيت بعض التبعيات. المتطلبات المطلقة الوحيدة لبناء bfs هي برنامج التحويل البرمجي C و GNU و Bash. يتم تثبيتها بشكل افتراضي على العديد من الأنظمة ، وسهلة التثبيت على معظم الآخرين. الرجوع إلى وثائق نظام التشغيل الخاص بك حول إنشاء البرامج.
يعتمد bfs أيضًا على بعض مكتبات النظام لبعض ميزاتها. إليك كيفية تثبيتها على بعض المنصات الشائعة:
جبال الألب لينكس
# apk إضافة acl {،-dev} attr libcap {،-dev} liburing-dev oniguruma-dev
قوس لينكس
# Pacman -S ACL ATTR LIBCAP LIBURING ONIGURUMA
ديبيان/أوبونتو
# apt تثبيت ACL libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
فيدورا
# DNF تثبيت acl libacl-devel attr libcap-devel liburing-devel oniguruma-devel
نيكسوس
# nix -env -i acl attr libcap liburing oniguruma
Linux باطلة
# xbps-install -s acl- {devel ، progs} attr-progs libcap- {devel ، progs} liburing-devel oniguruma-devel
البيرة
$ Brew Install Oniguruma
macports
# منفذ تثبيت Oniguruma6
FreeBsd
# PKG تثبيت Oniguruma
هذه التبعيات اختيارية من الناحية الفنية ، على الرغم من الموصى بها بشدة. انظر وثائق البناء لكيفية تعطيلها.
bfs .قم بتنزيل أحد الإصدارات أو استنساخ GIT Repo. ثم ركض
$ ./configure
$ make
هذا سوف يبني ./bin/bfs ثنائي. قم بتشغيل مجموعة الاختبار للتأكد من أنه يعمل بشكل صحيح:
$ make check
إذا كنت مهتمًا بالسرعة ، فقد ترغب في إنشاء إصدار الإصدار بدلاً من ذلك:
$ ./configure --enable-release
$ make
أخيرًا ، إذا كنت ترغب في تثبيته على مستوى العالم ، فتشغيل
# make install