3P by neo 3달전 | favorite | 댓글 1개

eza

eza 소개

  • eza는 Unix와 Linux 운영체제에 기본으로 제공되는 파일 목록 명령어 ls의 현대적 대체품임
  • 파일 유형과 메타데이터를 구분하기 위해 색상을 사용함
  • 심볼릭 링크, 확장 속성, Git을 인식함
  • 작고 빠르며 단일 바이너리로 제공됨
  • 사용자 친화적이고 기능이 풍부한 ls의 대체품을 목표로 함

eza의 주요 기능

  • exa 2021에서 발생한 "그리드 버그" 수정
  • 하이퍼링크 지원
  • 마운트 포인트 세부 정보 제공
  • Selinux 컨텍스트 출력
  • Git 저장소 상태 출력
  • 사람이 읽기 쉬운 상대 날짜 표시
  • 여러 보안 수정 사항
  • 밝은 터미널 색상 지원
  • 다양한 작은 버그 수정 및 변경 사항

설치 방법

  • eza는 Windows, macOS, Linux에서 사용 가능
  • 플랫폼 및 배포판별 설치 지침은 INSTALL.md에서 확인 가능

명령줄 옵션

표시 옵션

  • -1, --oneline: 한 줄에 하나의 항목 표시
  • -G, --grid: 항목을 그리드 형태로 표시 (기본값)
  • -l, --long: 확장된 세부 정보와 속성 표시
  • -R, --recurse: 디렉토리 재귀적으로 탐색
  • -T, --tree: 디렉토리를 트리 형태로 재귀적으로 탐색
  • -x, --across: 그리드를 가로로 정렬
  • -F, --classify=(when): 파일 이름에 유형 표시 (항상, 자동, 안함)
  • --colo[u]r=(when): 터미널 색상 사용 시기 설정 (항상, 자동, 안함)
  • --colo[u]r-scale=(field): field의 수준을 구별하여 강조 (전체, 나이, 크기)
  • --color-scale-mode=(mode): --color-scale에서 고정 색상 또는 그라데이션 사용 (고정, 그라데이션)
  • --icons=(when): 아이콘 표시 시기 설정 (항상, 자동, 안함)
  • --hyperlink: 항목을 하이퍼링크로 표시
  • --absolute=(mode): 절대 경로로 항목 표시 (켜짐, 따름, 꺼짐)
  • -w, --width=(columns): 화면 너비를 열 단위로 설정

필터링 옵션

  • -a, --all: 숨김 파일 및 '점' 파일 표시
  • -d, --list-dirs: 디렉토리를 일반 파일처럼 나열
  • -L, --level=(depth): 재귀 깊이 제한
  • -r, --reverse: 정렬 순서 반대로
  • -s, --sort=(field): 정렬할 필드 설정
  • --group-directories-first: 디렉토리를 다른 파일보다 먼저 나열
  • -D, --only-dirs: 디렉토리만 나열
  • -f, --only-files: 파일만 나열
  • --no-symlinks: 심볼릭 링크 표시 안함
  • --show-symlinks: 심볼릭 링크 명시적으로 표시
  • --git-ignore: .gitignore에 언급된 파일 무시
  • -I, --ignore-glob=(globs): 무시할 파일의 글로브 패턴 설정

긴 보기 옵션

  • -b, --binary: 파일 크기를 이진 접두사로 표시
  • -B, --bytes: 파일 크기를 바이트 단위로 표시
  • -g, --group: 각 파일의 그룹 표시
  • -h, --header: 각 열에 헤더 행 추가
  • -H, --links: 각 파일의 하드 링크 수 표시
  • -i, --inode: 각 파일의 inode 번호 표시
  • -m, --modified: 수정된 타임스탬프 필드 사용
  • -M, --mounts: 마운트 세부 정보 표시 (Linux 및 MacOS만 해당)
  • -S, --blocksize: 할당된 파일 시스템 블록 크기 표시
  • -t, --time=(field): 사용할 타임스탬프 필드 설정
  • -u, --accessed: 접근된 타임스탬프 필드 사용
  • -U, --created: 생성된 타임스탬프 필드 사용
  • -X, --dereference: 파일 정보에 대해 심볼릭 링크 해제
  • -Z, --context: 각 파일의 보안 컨텍스트 표시
  • -@, --extended: 각 파일의 확장 속성과 크기 표시
  • --changed: 변경된 타임스탬프 필드 사용
  • --git: 각 파일의 Git 상태 표시
  • --git-repos: 각 디렉토리의 Git 상태 표시
  • --git-repos-no-status: 디렉토리가 Git 저장소인지 여부만 표시 (더 빠름)
  • --no-git: Git 상태 표시 안함
  • --time-style: 타임스탬프 형식 설정
  • --total-size: 재귀적 디렉토리 크기 표시
  • --no-permissions: 권한 필드 표시 안함
  • -o, --octal-permissions: 각 파일의 권한을 8진수 형식으로 표시
  • --no-filesize: 파일 크기 필드 표시 안함
  • --no-user: 사용자 필드 표시 안함
  • --no-time: 시간 필드 표시 안함
  • --stdin: stdin에서 파일 이름 읽기

eza 기여 방법

  • eza에 기여하려면 먼저 행동 강령을 따라야 함
  • 행동 강령을 이해한 후 CONTRIBUTING.md를 참조하여 실제 해킹에 대한 정보를 얻을 수 있음

GN⁺의 정리

  • ezals의 현대적 대체품으로, 더 많은 기능과 사용자 친화적인 인터페이스를 제공함
  • 다양한 색상 옵션과 Git 상태 표시 등 유용한 기능을 포함하고 있음
  • Windows, macOS, Linux에서 모두 사용 가능하며, 설치 방법도 간단함
  • ls와 유사하지만 더 많은 옵션을 제공하여 파일 목록 작업을 더 효율적으로 수행할 수 있음
  • 비슷한 기능을 제공하는 도구로는 exa가 있음
Hacker News 의견
  • "human readable dates"가 불편함. 디렉토리 목록에서 날짜와 시간을 보고 싶음

    • 예를 들어, "1 day ago" 대신 정확한 시간 표시를 원함
    • 무한 스크롤의 결과일 수도 있음
  • lsd도 있지만 eza를 선호함

    • 현대적인 명령어 도구들 추천
      • bat - 하이라이트 기능이 있는 cat
      • difftastic - 더 나은 diff
      • gdu - SSD용 디스크 공간 분석기
      • zoxide - 현대적인 cd
      • fd - find 대체
      • rg - ripgrep (grep)
      • fzf - 퍼지 파인더
      • jless - 마우스 폴딩 기능이 있는 JSON 뷰어
      • dra - 릴리스 자산 다운로드 및 설치
      • lazygit - Git TUI
      • lazydocker - Docker TUI
      • yazi - 이미지 미리보기가 있는 파일 관리자
      • zellij - 더 나은 tmux / screen
      • starship - 크로스 쉘 프롬프트 구성
  • GNU ls는 유지 관리되고 있음

    • 최근 커밋이 있음 (2024-06-24, 2024-06-27)
    • GNU Coreutils 메일링 리스트도 활발함
  • fish shell로 전환 후 ls 사용이 100% 감소함

    • Alt + l 명령어로 디렉토리 내용 표시
    • 더 깨끗한 쉘 히스토리 결과
  • 색상을 사용하여 파일 유형을 구분하는 터미널 도구에 문제 있음

    • 눈에 편한 터미널 배경을 사용함
    • 색상 스키마가 배경과 충돌하거나 보기 어려움
    • ls 또는 ls 대체 출력에서 색상을 원하지 않음
    • ls -AFC 출력으로 충분함
  • GNU 유틸리티의 새로운 버전이 MIT 라이선스로 빌드되는 이유가 궁금함

  • README에 ezaexa의 포크라는 언급이 없음을 이상하게 생각함

  • qwerty 키보드에서 eza 타이핑이 불편함

    • ls는 빠른 키 조합임
    • alias를 사용할 수 있지만 호환성 문제 등으로 이상함
  • eza/exa의 주요 기능은 예쁜 색상이 아니라 git 통합임

    • 파일 목록에서 개별 파일의 git 상태를 볼 수 있음 (무시됨, 수정됨 등)
  • ls를 사용하는 사람은 거의 없음

    • 탭 완성으로 필요한 파일을 나열함
    • ls가 더 이상 유지 관리되지 않는다고 주장하는 이유가 궁금함