bfsMerkmale • Installation • Gebrauch • Gebäude • Beitrag • Changelog
bfs ist eine Variante des UNIX- find , der eher die Breite zuerst als die Tiefe zuerst betreibt. Es ist ansonsten mit vielen Versionen von find , einschließlich des Finds, kompatibel
POSIX • GNU • FROEBSD • OpenBSD • NETBSD • MACOS
Wenn Sie mit find nicht vertraut sind, bietet das GNU -Find -Handbuch eine gute Einführung.
bfs betreibt die Breite, die in der Regel die Datei (en) findet, nach denen Sie schneller suchen.Stellen Sie sich den folgenden Verzeichnisbaum vor:
Heuhaufen
├── tief
│ └── 1
│ └── 2
│ └── 3
│ └── 4
│ └ └── ...
└── flach
└── Nadel
find wird den gesamten deep Verzeichnisbaum erkunden, bevor er jemals zum shallow kommt, der das enthält, wonach Sie suchen. Auf der anderen Seite listet bfs Dateien von flachsten bis tiefste auf, sodass Sie nie darauf warten müssen, dass es einen gesamten nicht verwandten Subtree untersucht.
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 versucht, einfacher zu verwenden als find und gleichzeitig kompatibel zu sein. Zum Beispiel ist bfs weniger wählerisch darüber, wo Sie seine Argumente vorlegen:
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 gibt hilfreiche Fehler und Warnungen. Beispielsweise erkennen und schlagen bfs Korrekturen für Tippfehler fest:
$ bfs -nam needle
bfs: error: bfs -nam needle
bfs: error: ~~~~
bfs: error: Unknown argument; did you mean -name? bfs enthält auch eine leistungsstarke statische Analyse, um Fehler zu fangen:
$ bfs -print -name ' needle '
bfs: warning: bfs -print -name needle
bfs: warning: ~~~~~~~~~~~~
bfs: warning: The result of this expression is ignored.bfs fügt einige Optionen hinzu, die gemeinsame Aufgaben erleichtern. Zum Beispiel überspringt der Operator -exclude , wenn ein Ausdruck übereinstimmt. -exclude ist sowohl leistungsfähiger als auch einfacher zu bedienen als die Standard -prune -Aktion; vergleichen
$ BFS -NAME CONFIG -EXCLUDE -NAME .Git
auf das Äquivalent
$ find ! (-name .git -prune ) -name config
Als zusätzliche Abkürzung überträgt -nohidden alle versteckten Dateien und Verzeichnisse. Weitere Informationen zu den von bfs bereitgestellten Erweiterungen finden Sie in der Nutzungsdokumentation.
bfs ist möglicherweise bereits für Ihr Betriebssystem verpackt.| Linux | macos |
|---|---|
Alpine Linux # APK BFS hinzufügen Arch Linux # Pacman -S BFS Debian/Ubuntu # APT -BFS Installieren Fedora Linux # DNF Installieren Sie BFS Gentoo # Emerge Sys-Apps/BFS GNU Guix # Guix installieren BFS Nixos # Nix -Env -i BFS Void Linux # xbps -install -s BFS | Homebrew $ Brew installieren BFS Macports # Port Installieren Sie BFS |
| BSD | |
FreeBSD # PKG Installieren Sie BFS OpenBSD # PKG_ADD BFS |
bfs aus der Quelle zu erstellen, müssen Sie möglicherweise einige Abhängigkeiten installieren. Die einzigen absoluten Anforderungen für den Bau bfs sind C -Compiler, GNU Make und Bash. Diese werden standardmäßig auf vielen Systemen installiert und in den meisten anderen einfach zu installieren. Siehe Dokumentation Ihres Betriebssystems zum Erstellen von Software.
bfs hängt auch von einigen Systembibliotheken für einige seiner Funktionen ab. Hier erfahren Sie, wie Sie sie auf einigen gemeinsamen Plattformen installieren:
Alpine Linux
# apk add acl {,-dev} attr libcap {,-dev} liburing-dev oniguruma-dev
Arch Linux
# Pacman -S ACL Attr libcap liburing oniguruma
Debian/Ubuntu
# APT Installation ACL libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
Fedora
# DNF Installieren Sie ACL libacl-Devel Attr libcap-Devel liburing-Devel Oniguruma-Devel
Nixos
# NIX -ENV -I ACL ATTR libcap liburing oniguruma
Void Linux
# xbps-install -s acl- {Devel, progs} attr-progs libcap-
Homebrew
$ Brew Install Oniguruma
Macports
# Port Installation Oniguruma6
FreeBSD
# PKG Oniguruma installieren
Diese Abhängigkeiten sind technisch optional, obwohl sie stark empfohlen werden. Sehen Sie sich die Build -Dokumentation an, um sie zu deaktivieren.
bfs erstellen.Laden Sie eine der Veröffentlichungen herunter oder klonen Sie das Git -Repo. Dann rennen
$ ./configure
$ make
Dadurch wird die Binärdatei ./bin/bfs aufgebaut. Führen Sie die Testsuite aus, um sicherzustellen, dass sie richtig funktioniert:
$ make check
Wenn Sie an Geschwindigkeit interessiert sind, möchten Sie stattdessen die Release -Version erstellen:
$ ./configure --enable-release
$ make
Wenn Sie es schließlich global installieren möchten, laufen Sie aus
# make install