g

开始使用 - 图5

一个强大的 ls 工具

CodeFactor Go Report Card wakatime Go AUR license

linux macos windows AUR version

View this document in English

g 是一个 ls 替代品,拥有下面一些功能:

  1. 显示带有类型特定图标和颜色的条目,并且易于更改
  2. 有丰富的输出格式 ( grid/across/byline/zero/comma/table/html/json/markdown/tree )
  3. 用户友好的选项
  4. 支持显示 git status
  5. 丰富且可自定义的排序选项
  6. 跨平台 ( Linux/Windows/MacOS )
  7. 支持使用fzf 算法,像 zoxide 一样模糊匹配路径

截图

开始使用 - 图15

安装

源码安装

要求 go version >= 1.20

  1. go install -ldflags="-s -w" github.com/Equationzhao/g@latest

或者 clone 这个仓库 (nightly build)

  1. git clone github.com/Equationzhao/g
  2. cd g
  3. go build -ldflags="-s -w" # use -s -w to shrink size
  4. # then add the executable file to your `PATH`

通过包管理器

archlinux 用户可以通过 AUR 安装 g

  1. yay -S g-ls

homebrew:

  1. brew tap equationzhao/core git@github.com:Equationzhao/homebrew-g.git
  1. brew install g-ls

二进制文件

deb

  1. sudo dpkg -i g_$version_$arch.deb

tar,gz/zip

release page 下载对应平台的文件, 解压 gzip 并将可执行文件添加到 PATH

推荐使用的终端

macOS:

Windows:

cross-platform:

用法

  1. g path(s)

显示图标

  1. g -icons

显示修改(默认)时间

  1. g -time

显示 访问/创建/修改 时间

  1. g -time -time-type=access
  2. g -time -ac/cr/mod

显示文件权限

  1. g -permission
  2. g -octal-perm # show octal permission like 0777

显示用户/群组

  1. g -owner
  2. g -group

显示文件大小

  1. g -size
  2. g -size -recusive-size # show size of dir recursively

显示所有文件,包括隐藏文件

  1. g -sh
  2. g -show-hidden
  3. g -a

只显示目录

  1. g -dir

按行显示

  1. g -1
  2. g -oneline
  3. g -single-column

显示有指定拓展名的文件

  1. g -ext=<target ext(s)>
  2. # eg:
  3. # g -ext=go,md

递归显示目录

  1. g -R
  2. g -recurse

限制在 树/递归 模式下的 递归深度 (默认: 无限制)

  1. g -R -depth=<level>

模糊搜索

  1. g -f
  2. g -fuzzy
  3. # eg: g -f in
  4. # /mnt/e/Project/gverything/index
  5. # pathindex.go

禁用索引更新

  1. g -di
  2. g -no-update
  3. g -disable-index

禁用颜色

  1. g -no-color
  2. g -colorless

设置颜色

  1. g -color=always
  2. g -color=auto # default
  3. g -color=never
  4. g -color=16/basic # 16-color
  5. g -color=256/8bit # 256-color
  6. g -color=16m/24bit/true-color # 24-bit

显示校验和 (md5,sha1,sha224,sha256,sha384,sha512,crc32)

  1. g -cs -ca=sha256

显示 git status

  1. g -git
  2. g -git-status

表格式输出

  1. g -tb

树状输出

  1. g -tree

以 markdown 格式输出, 并用 glow 渲染 ( 不支持颜色 )

  1. g -md | glow

image

Shell 脚本

生成 shell 脚本

  1. g -init bash/zsh/fish/pwsh

bash

  1. # add the following command to .bashrc
  2. eval "$(g --init bash)"
  3. # then `source ~/.bashrc`

zsh

  1. # add the following command to .zshrc
  2. eval "$(g --init zsh)"
  3. # then `source ~/.zshrc`

fish

  1. # add to fish config:
  2. g --init fish | source
  3. # then `source ~/.config/fish/config.fish`

powershell

  1. # add the following line to your profile
  2. Invoke-Expression (& { (g --init powershell | Out-String) })

使用 echo $profile命令查找配置文件路径

nushell

  1. # add the following to your $nu.env-path
  2. ^g --init nushell | save -f ~/.g.nu
  3. # then add the following to your $nu.config-path
  4. source ~/.g.nu
  5. # if you want to replace nushell's g command with g
  6. # add the following definition and alias to your $nu.config-path
  7. #
  8. # def nug [arg?] {
  9. # if ($arg == null) {
  10. # g $arg
  11. # } else {
  12. # g
  13. # }
  14. # }
  15. # alias g = ^g

更多选项

g.md 或查看 主页

自定义主题

theme

TODO

  • Version sort
  • Git sort
  • Print security context
  • $OLDPWD
  • Color Support for html/markdown

Logo

created by bing

其他选择

本项目受到以下项目的启发,你也许想试试

查看帖子

Repography logo / Recent activity Time period

Timeline graph Pull request status graph Trending topics Top contributors