bfs
Version 4.0.4
bfs功能•安裝•用法•建築物•貢獻•ChangElog
bfs是Unix find命令的變體,該命令是首先操作廣度優先而不是深度優先。否則它與許多find兼容,包括
POSIX•GNU•FREEBSD•OPENBSD•NETBSD•MACOS
如果您不熟悉find ,GNU查找手冊會提供很好的介紹。
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操作員都會跳過整個子樹。 - 與標準的-prune儀動作相比, -exclude更強大,更易於使用;比較
$ bfs -name config -exclude -name .git
等效
$找到! (-name .git -prune ) -Name配置
作為額外的速記, -nohidden跳過所有隱藏的文件和目錄。有關bfs提供的擴展,請參見使用文檔。
bfs可能已經為您的操作系統打包。| Linux | macos |
|---|---|
高山Linux #APK添加BFS Arch Linux #Pacman -s BFS Debian/Ubuntu #APT安裝BFS Fedora Linux #DNF安裝BFS Gentoo #出現sys-apps/bfs gnu guix #GUIX安裝BFS 尼克斯 #NIX -ENV -I BFS void linux #xbps -install -s bfs | 自製 $ BREW安裝BFS Macports #端口安裝BFS |
| BSD | |
freebsd #PKG安裝BFS OpenBSD #PKG_ADD BFS |
bfs ,您可能需要安裝一些依賴項。建造bfs的唯一絕對要求是C編譯器,GNU MAKE和BASH。這些默認情況下是在許多系統上安裝的,並且易於安裝在大多數係統上。請參閱操作系統的構建軟件文檔。
bfs還取決於其某些功能的某些系統庫。這是將它們安裝在某些常見平台上的方法:
高山Linux
#apk添加acl {, - dev} attr libcap {, - dev} liburing-dev oniguruma-dev
Arch Linux
#Pacman -s Acl Attr libcap放棄oniguruma
Debian/Ubuntu
#APT安裝ACL libacl1-dev attr libattr1-dev libcap2-bin libcap-dev libcap-dev liburing-dev libonig-dev
軟呢帽
#DNF安裝ACL libacl-Devel attr libcap-devel liburing-devel-oniguruma-devel
尼克斯
#NIX -ENV -I acl attr libcap放棄oniguruma
void linux
#xbps-install -s acl- {devel,progs} attr-progs libcap- {devel,progs} liburing-devel-devel oniguruma-devel
自製
$ BREW安裝Oniguruma
Macports
#端口安裝Oniguruma6
freebsd
#PKG安裝Oniguruma
這些依賴性在技術上是可選的,儘管強烈建議使用。有關如何禁用它們的構建文檔。
bfs 。下載版本之一或克隆git回購。然後運行
$ ./configure
$ make
這將構建./bin/bfs二進制。運行測試套件以確保其正常工作:
$ make check
如果您對速度感興趣,則可能需要構建發布版本:
$ ./configure --enable-release
$ make
最後,如果您想在全球安裝它,請運行
# make install