명령줄 검색 (lff)
Lertaro에는 터미널 파워 유저와 쉘 스크립트 작성자를 위한 가볍고 효율적인 명령줄 도구인 lff (Lertaro Fuzzy Finder)가 포함되어 있습니다. 로컬 명명된 파이프를 통해 실행 중인 Lertaro App과 통신하여 디스크를 다시 스캔하지 않고 인메모리 인덱스 트리를 즉시 공유합니다.
1. lff를 선택하는 이유
- 인덱스 공유, 제로 I/O 지연: 매번 디스크를 처음부터 탐색하는
fzf나find와 달리, Lertaro가 구축해 둔 수백만 개 항목의 메모리 인덱스를 밀리초 단위로 쿼리합니다. - 동일한 강력한 검색 문법: Lertaro의 퍼지 점프 매칭, 한어병음 별칭, 다양한 수식어 연산자(검색 문법 참고)를 완벽히 계승합니다.
- 빠른 안전 종료: Lertaro App 실행 여부를 자동 감지하여 실행 중이 아니면
stderr에 에러를 출력하고 즉시 종료하여 터미널 프리징을 방지합니다.
2. 설치 및 PATH 설정
lff.exe는 Lertaro 패키지에 기본 포함되어 있습니다.
- 설치 프로그램: 설치 마법사에서 lff 명령줄 검색 도구를 PATH에 추가를 체크하면 모든 터미널에서
lff를 바로 실행할 수 있습니다. - 포터블 버전: 압축을 푼 폴더 경로를 사용자 또는 시스템
PATH환경 변수에 수동 추가합니다.
NOTE
PATH 변경 후에는 변경 사항을 반영하기 위해 새 터미널 창을 열어주세요.
3. 인터랙티브 UI 및 단축키
터미널에서 lff를 입력하고 Enter를 누르면 전체 화면 대화형 검색창이 열립니다.
lff주요 단축키 안내
| 키 | 설명 |
|---|---|
| 문자 입력 | 검색 결과를 실시간으로 퍼지 필터링. |
↑ / ↓ | 선택 항목을 위/아래로 이동. |
Page Up / Page Down | 페이지 단위로 빠르게 스크롤. |
← / → | 검색 입력창에서 커서를 좌우로 이동. |
Tab | 현재 항목 선택/선택 해제 토글(선택된 항목에는 * 표시). |
Enter | 선택된 모든 경로(선택 항목이 없으면 현재 강조된 경로)를 stdout으로 출력하고 종료. |
Esc 또는 Ctrl+C | 아무것도 출력하지 않고 안전하게 종료. |
4. 비대화형 검색
대화형 화면을 열지 않고 검색 결과를 받아야 하는 스크립트에서는 --search를 사용합니다.
# 일치하는 경로를 최대 20개 출력
lff --search "report"
# 전체 결과를 먼저 정렬한 다음 앞에서 50개만 유지
lff --search "report" --limit 50
# 지정한 디렉터리와 하위 디렉터리의 파일만 검색
lff --search "report" --files --path "D:\Documents"
# 폴더만 검색
lff --search "report" --folders
# 결과 메타데이터가 포함된 하나의 압축 JSON 배열 출력
lff --search "report" --json전체 결과를 먼저 정렬한 뒤 --limit를 적용합니다. --limit를 지정하지 않으면 최대 20개 결과가 출력됩니다. 일반 출력은 한 줄에 한 경로를 출력하고, --json은 NDJSON이 아닌 하나의 JSON 배열을 출력합니다. 각 JSON 항목에는 이름, 경로, 디렉터리 여부, 드라이브, 특성, 크기, 생성·수정·액세스 시간이 포함됩니다. 이 모드는 대화형 화면과 동일한 검색 문법을 사용하며 Lertaro App이 실행 중이어야 합니다.
--files와 --folders는 함께 사용할 수 없습니다. --path를 지정하면 검색 범위가 해당 디렉터리와 모든 하위 디렉터리로 제한됩니다.
5. 검색어 사전 지정 및 파이프 입력
명령줄 인수나 표준 입력 파이프를 통해 초기 검색어를 전달할 수 있습니다.
# 인수 전달
lff report
# 표준 입력 파이프 전달
echo report | lff두 방식 모두 report가 입력된 상태로 대화형 인터페이스를 열어 추가 필터링을 하거나 Enter로 즉시 결과를 확정할 수 있습니다.
6. 다중 선택 및 일괄 출력
Tab 키를 눌러 항목을 마킹할 수 있습니다. 마킹 상태는 검색어를 변경해도 유지됩니다.
예를 들어 doc을 검색해 Word 문서를 마킹하고, 검색어를 지운 뒤 pdf를 검색해 PDF 보고서를 마킹한 다음 Enter를 누르면, 여러 검색에 걸쳐 선택된 모든 경로가 줄바꿈으로 구분되어 표준 출력으로 일괄 출력됩니다.
7. 쉘 스크립트 연동 실전
lff의 인터페이스는 콘솔 버퍼에 직접 그려지므로 표준 출력 스트림을 오염시키지 않습니다. 최종 확정된 경로 문자열만 stdout에 기록되므로 다른 명령과 자연스럽게 파이프라인을 구성할 수 있습니다.
PowerShell 연동
# 검색된 파일을 VS Code로 열기
code (lff)
# 선택한 폴더로 이동
$target = lff; cd $target
# 검색 결과를 FileInfo 객체로 파이프에 전달
lff | Get-Item | Select-Object Name, Length, LastWriteTimeCMD / 배치 파일 연동
:: for 루프를 통해 선택한 경로를 한 줄씩 처리
for /f "delims=" %i in ('lff') do code "%i"8. 설계상 고려 사항 및 제한
- App 실행 필요:
lff자체는 인덱싱을 수행하지 않으므로 Lertaro App이 실행 중이어야 합니다. - GUI 미리보기 미지원: 터미널 파이프 작업에 특화되어 있습니다. 리치 텍스트나 미디어 미리보기가 필요한 경우 GUI의 액션 및 미리보기를 사용하세요.