티스토리 뷰

CLI

FZF

UnEmotioneD 2026. 2. 17. 22:02

https://github.com/junegunn/fzf

 

GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder

:cherry_blossom: A command-line fuzzy finder. Contribute to junegunn/fzf development by creating an account on GitHub.

github.com

 

터미널에서 현재 경로 아래에 다른 경로와 파일을 검색하여 값을 반환하거나 바로 이동 또는 과거에 사용한 명령어를 검색할 수 있다


준비

  • bat : cat의 대체. 파일을 더 괜찮은 형식으로 출력
  • eza : ls의 대체. 아이콘, git 상태 표시 가능
  • fd-find : find의 대체. 더 빠르고 직관적인 검색 도구
sudo apt update && sudo apt install bat eza fd-find git

설치

 

Git을 이용해서 클론:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

 

설치 스크립트 실행:

~/.fzf/install

 

프롬프트에서 전부 엔터키를 눌러서 동의

 

~/.fzf.bash 파일이 있으면 불러오는 스크립트가 ~/. bashrc에 추가됨

[ -f ~/.fzf.bash ] && source ~/.fzf.bash

설정

~/. bash에 다음 스크립트를 추가:

# fd(fdfind) instead of find for better performance
# strip away dir prefix
# do not show .git dir
export FZF_DEFAULT_COMMAND='fdfind --hidden --strip-cwd-prefix --exclude .git'
# Preview directories with eza, files with bat(batcat).
preview='if [ -d {} ]; then eza --tree --color=always {} | head -200; else batcat -n --color=always --line-range :500 {}; fi'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_CTRL_T_OPTS="--preview '$preview'"

export FZF_ALT_C_COMMAND='fdfind --type=d --hidden --strip-cwd-prefix --exclude .git'
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"

 

저장하고서 현재 Shell(터미널)에 적용시켜준다.

source ~/.bashrc # source 대신 .(온점)사용 가능

사용

경로 또는 파일 검색

터미널에서 프로그램 이름 입력 후 Ctrl + T를 누른다:

code <Ctrl + T>

 

  • 현재 경로 아래의 경로 및 파일을 검색
  • Ctrl + J/K: 아래/위 이동 (또는 화살표)

 

다음처럼 완성된다:

code roscamp-repo-3/TechnicalResearch/server/

 

다시 Enter를 누르면 VSCode를 이용해서 해당 경로를 열게 된다


명령어 기록 검색

 

Ctrl + R

 

~/. bash_history에 있는 과거에 사용한 명령어를 검색 후 사용


경로 이동

 

Alt + C

  • 단축키를 누른 경로 밑에 있는 경로만 검색
  • 선택한 경로로 바로 이동
  • ESC 누른 후 c를 눌러도 똑같이 동작

응용

APT 패키지 검색

apt-cache를 최신화 하기 위해서 update

sudo apt update
apt-cache search . | fzf
  • apt-cache : 로컬에 저장되어 있는 패키지 목록
  • search . : 전부 검색
  • | (파이프) : 왼쪽의 출력을 오른쪽으로 넘겨줌

검색 후 설치

sudo apt install $(apt-cache search . | fzf --multi | awk '{print $1}')
  • --multi : Tab 키를 이용하여 여러개 선택 가능
  • awk : 공백 기준으로 나눔
  • $1 : awk에서 나눈 결과에서 첫번째 값
  • $(...) : 결과를 앞의 apt install 에게 넘겨줌

함수 등록

function aif() { sudo apt install $(apt-cache search . | fzf --multi | awk '{print $1}') }

 

  • 등록후 aif를 입력하면 중괄호 안의 스크립트가 살행됨
  • Alias로 등록하는것 보다 안전

'CLI' 카테고리의 다른 글

BASH 대소문자 구분없는 자동완성  (0) 2026.02.15
Zoxide  (0) 2026.01.27
GNU Stow 사용하기  (0) 2024.11.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함