bfsคุณสมบัติ•การติดตั้ง•การใช้งาน•อาคาร•การสนับสนุน• Changelog
bfs เป็นตัวแปรของคำสั่ง UNIX find ที่ทำงาน เป็นครั้งแรก มากกว่า ความลึกเป็นครั้งแรก เป็นอย่างอื่นเข้ากันได้กับ find หลายรุ่นรวมถึง
POSIX • GNU • FREEBSD • OpenBSD • NETBSD • MacOS
หากคุณไม่คุ้นเคยกับ find คู่มือ GNU จะให้การแนะนำที่ดี
bfs ดำเนินการกว้างก่อนซึ่งโดยทั่วไปจะพบไฟล์ที่คุณกำลังมองหาเร็วขึ้นลองนึกภาพต้นไม้ไดเรกทอรีต่อไปนี้:
กองหญ้า
deep
│── 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
เทียบเท่า
$ ค้นหา ! (-name .git -prune ) -name config
ในฐานะที่เป็นชวเลขเพิ่มเติม -nohidden ข้ามไฟล์และไดเรกทอรีที่ซ่อนอยู่ทั้งหมด ดูเอกสารการใช้งานสำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนขยายที่จัดทำโดย bfs
bfs อาจถูกบรรจุไว้แล้วสำหรับระบบปฏิบัติการของคุณ| ลินเวกซ์ | แม็กอส |
|---|---|
อัลไพน์ลินุกซ์ # apk เพิ่ม bfs ซุ้มประตู # pacman -s bfs Debian/Ubuntu # apt ติดตั้ง bfs Fedora Linux # dnf ติดตั้ง bfs คนขี้เกียจ # ENERGE 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 Make และ Bash สิ่งเหล่านี้ถูกติดตั้งโดยค่าเริ่มต้นในหลาย ๆ ระบบและติดตั้งได้ง่ายส่วนใหญ่ อ้างถึงเอกสารประกอบของระบบปฏิบัติการของคุณเกี่ยวกับการสร้างซอฟต์แวร์
bfs ยังขึ้นอยู่กับไลบรารีระบบบางอย่างสำหรับคุณสมบัติบางอย่าง นี่คือวิธีการติดตั้งบนแพลตฟอร์มทั่วไป:
อัลไพน์ลินุกซ์
# apk เพิ่ม acl {,-dev} attr libcap {,-dev} liburing-dev oniguruma-dev
ซุ้มประตู
# pacman -s acl attr libcap liburing oniguruma
Debian/Ubuntu
# apt ติดตั้ง acl libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
ฟีดอร่า
# dnf ติดตั้ง acl libacl-devel attr libcap-devel liburing devel 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-devel devel-devel
โฮมบรูว์
$ brew ติดตั้ง oniguruma
MacPorts
# พอร์ตติดตั้ง oniguruma6
FreeBSD
# pkg ติดตั้ง oniguruma
การพึ่งพาเหล่านี้เป็นทางเลือกทางเทคนิคแม้ว่าจะแนะนำอย่างยิ่ง ดูเอกสารประกอบสำหรับวิธีปิดการใช้งาน
bfs ได้ดาวน์โหลดหนึ่งในรีลีสหรือโคลน The Git repo จากนั้นวิ่ง
$ ./configure
$ make
สิ่งนี้จะสร้าง ./bin/bfs bfs ไบนารี เรียกใช้ชุดทดสอบเพื่อให้แน่ใจว่าทำงานได้อย่างถูกต้อง:
$ make check
หากคุณสนใจความเร็วคุณอาจต้องการสร้างเวอร์ชันรุ่นแทน:
$ ./configure --enable-release
$ make
ในที่สุดถ้าคุณต้องการติดตั้งทั่วโลกให้ทำงาน
# make install