bfs특징 • 설치 • 사용법 • 건물 • 기부 • Changelog
bfs 깊이 우선이 아닌 폭이 먼저 작동하는 UNIX find 명령의 변형입니다. 그렇지 않으면 많은 버전의 find 와 호환됩니다.
POSIX • GNU • FREEBSD • OPENBSD • NETBSD • MACOS
find 에 익숙하지 않은 경우 GNU Find Manual은 좋은 소개를 제공합니다.
bfs 폭이 넓게 작동하며 일반적으로 더 빠르게 찾고자하는 파일을 찾습니다.다음 디렉토리 트리를 상상해보십시오.
커다란 건초 더미
Deep
│ │ │ 대 1
│ │ │대로 2
│ │ │ 대 3
│ │ ─신 4
│ │ ─신 ... ...
└ ── 얕은
└ ─) 바늘
find 당신이 찾고있는 것을 포함하는 shallow 곳에 도착하기 전에 전체 deep Directory 트리 전체를 탐색합니다. 반면에 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 ) -이름 구성
추가적인 속기로서, -nohidden 모든 숨겨진 파일과 디렉토리를 건너 뜁니다. bfs 에서 제공 한 확장에 대한 자세한 내용은 사용 설명서를 참조하십시오.
bfs 이미 운영 체제를 위해 포장되어있을 수 있습니다.| 리눅스 | 마코스 |
|---|---|
알파인 리눅스 # APK 추가 BFS 아치 리눅스 # Pacman -S BFS 데비안/우분투 # APT 설치 BFS 페도라 리눅스 # DNF 설치 BFS 젠투 # SYS-APPS/BFS EMERGE GNU GUIX # Guix 설치 BFS 닉스 # nix -env -i bfs 무효 리눅스 # xbps -install -s bfs | 홈브류 $ Brew 설치 BFS 맥 포트 # 포트 설치 BFS |
| BSD | |
freebsd # PKG 설치 BFS OpenBsd # pkg_add bfs |
bfs 구축하려면 일부 종속성을 설치해야 할 수도 있습니다. bfs 구축하기위한 유일한 절대 요구 사항은 C 컴파일러, GNU 제조업체 및 배쉬입니다. 이들은 많은 시스템에서 기본적으로 설치되며 대부분의 다른 시스템에서 쉽게 설치할 수 있습니다. 구축 소프트웨어에 대한 운영 체제 문서를 참조하십시오.
bfs 또한 일부 기능에 대한 일부 시스템 라이브러리에 의존합니다. 몇 가지 공통 플랫폼에서 설치하는 방법은 다음과 같습니다.
알파인 리눅스
# apk add acl {,-dev} att libcap {,-dev} liburing-dev oniguruma-dev
아치 리눅스
# Pacman -S ACL att libcap liburing oniguruma
데비안/우분투
# APT 설치 ACL libacl1-dev attr libattr1-dev libcap2-bin libcap-dev liburing-dev libonig-dev
페도라
# DNF 설치 ACL LIBACL-DEVEL ATT LIBCAP-DEVEL LIBURING DEVEL ONIGURUMA-DEVEL
닉스
# nix -env -i acl att libcap libing oniguruma
무효 리눅스
# xbps-install -s acl- {devel, progs} attr-progs libcap- {devel, progs} liburing-devel oniguruma-devel
홈브류
$ brew iniguruma를 설치하십시오
맥 포트
# 포트 설치 oniguruma6
freebsd
# pkg oniguruma 설치
이러한 종속성은 기술적으로 선택 사항이지만 강력하게 권장됩니다. 비활성화하는 방법에 대한 빌드 문서를 참조하십시오.
bfs 구축 할 수 있습니다.릴리스 중 하나를 다운로드하거나 git repo를 복제하십시오. 그런 다음 실행하십시오
$ ./configure
$ make
이것은 ./bin/bfs 바이너리를 구축합니다. 테스트 스위트를 실행하여 올바르게 작동하는지 확인하십시오.
$ make check
속도에 관심이 있으시면 대신 릴리스 버전을 구축 할 수 있습니다.
$ ./configure --enable-release
$ make
마지막으로, 전 세계적으로 설치하려면 실행하십시오
# make install