bfsFitur • Instalasi • Penggunaan • Bangunan • Kontribusi • Changelog
bfs adalah varian dari perintah unix find yang mengoperasikan luas pertama daripada kedalaman-pertama . Itu sebaliknya kompatibel dengan banyak versi find , termasuk
POSIX • GNU • FREEBSD • OpenBSD • NetBSD • MacOS
Jika Anda tidak terbiasa find , GNU Find Manual memberikan pengantar yang baik.
bfs mengoperasikan luas pertama, yang biasanya menemukan file yang Anda cari lebih cepat.Bayangkan pohon direktori berikut:
tumpukan jerami
├── Dalam
│ └── 1
│ └── 2
│ └── 3
│ └── 4
│ └── ...
└── dangkal
└── jarum
find akan menjelajahi seluruh pohon direktori deep sebelum sampai ke yang shallow yang berisi apa yang Anda cari. Di sisi lain, bfs mencantumkan file dari yang paling dangkal ke terdalam, jadi Anda tidak perlu menunggu untuk menjelajahi seluruh subtree yang tidak terkait.
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 mencoba untuk lebih mudah digunakan daripada find , sambil tetap kompatibel. Misalnya, bfs kurang pilih -pilih di mana Anda meletakkan argumennya:
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 memberikan kesalahan dan peringatan yang bermanfaat. Misalnya, bfs akan mendeteksi dan menyarankan koreksi untuk kesalahan ketik:
$ bfs -nam needle
bfs: error: bfs -nam needle
bfs: error: ~~~~
bfs: error: Unknown argument; did you mean -name? bfs juga mencakup analisis statis yang kuat untuk membantu menangkap kesalahan:
$ bfs -print -name ' needle '
bfs: warning: bfs -print -name needle
bfs: warning: ~~~~~~~~~~~~
bfs: warning: The result of this expression is ignored.bfs menambahkan beberapa opsi yang membuat tugas umum lebih mudah. Misalnya, operator -exclude melompati seluruh subtree setiap kali ekspresi cocok. -exclude lebih kuat dan lebih mudah digunakan daripada aksi standar -prune ; membandingkan
$ bfs -name config -exclude -name .git
setara dengan
$ Temukan ! (-name .git -prune ) -name config
Sebagai steno tambahan, -nohidden melompati semua file dan direktori tersembunyi. Lihat dokumentasi penggunaan untuk lebih lanjut tentang ekstensi yang disediakan oleh bfs .
bfs mungkin sudah dikemas untuk sistem operasi Anda.| Linux | MacOS |
|---|---|
Alpine Linux # APK Tambahkan BFS Arch Linux # PACMAN -S BFS Debian/Ubuntu # App Instal BFS Fedora Linux # DNF Instal BFS Gentoo # Emerge Sys-Apps/BFS GNU GUIX # GUIX menginstal BFS Nixos # nix -env -i bfs Membatalkan Linux # xbps -install -s bfs | Homebrew $ brew instal bfs MacPorts # port instal bfs |
| BSD | |
Freebsd # pkg menginstal bfs OpenBSD # PKG_ADD BFS |
bfs dari sumber, Anda mungkin perlu menginstal beberapa dependensi. Satu -satunya persyaratan mutlak untuk membangun bfs adalah kompiler C, Make GNU, dan Bash. Ini diinstal secara default pada banyak sistem, dan mudah dipasang pada kebanyakan yang lain. Lihat dokumentasi sistem operasi Anda tentang membangun perangkat lunak.
bfs juga tergantung pada beberapa perpustakaan sistem untuk beberapa fiturnya. Inilah cara menginstalnya di beberapa platform umum:
Alpine Linux
# apk tambahkan acl {,-dev} attr libcap {,-dev} liburing-dev oniguruma-dev
Arch Linux
# PACMAN -S ACL ATTR LIBCAP Liburing Oniguruma
Debian/Ubuntu
# APT Instal ACL libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
Fedora
# DNF menginstal ACL libacl-devel attr libcap-devel-devel-devel-devel-devel
Nixos
# nix -env -i acl attr libcap liburing oniguruma
Membatalkan Linux
# xbps-install -s acl- {devel, progs} attr-progs libcap- {devel, progs} liburing-devel-devel-devel
Homebrew
$ minuman menginstal oniguruma
MacPorts
# port instal oniguruma6
Freebsd
# pkg instal oniguruma
Ketergantungan ini secara teknis opsional, meskipun sangat disarankan. Lihat dokumentasi Build untuk cara menonaktifkannya.
bfs .Unduh salah satu rilis atau klon git repo. Lalu jalankan
$ ./configure
$ make
Ini akan membangun biner ./bin/bfs . Jalankan test suite untuk memastikan itu berfungsi dengan benar:
$ make check
Jika Anda tertarik dengan kecepatan, Anda mungkin ingin membangun versi rilis sebagai gantinya:
$ ./configure --enable-release
$ make
Akhirnya, jika Anda ingin menginstalnya secara global, jalankan
# make install