找回密码
 立即注册
搜索
查看: 1139|回复: 0

在 Git Bash 中使用 tree 命令

[复制链接]

267

主题

0

回帖

1164

积分

管理员

积分
1164
发表于 2024-1-9 19:06:55 | 显示全部楼层 |阅读模式

关于 tree 命令

tree 命令可以以 ASCII 树状图的方式列出目录的结构。

$ tree ./tree-1.5.2.2-bin -A
./tree-1.5.2.2-bin
├── bin
│   └── tree.exe
├── contrib
│   └── tree
│       └── 1.5.2.2
│           ├── tree-1.5.2.2
│           ├── tree-1.5.2.2-GnuWin32.README
│           └── tree-1.5.2.2-src
│               ├── CHANGES
│               ├── INSTALL
│               ├── LICENSE
│               └── README
├── man
│   └── cat1
│       └── tree.1.txt
└── manifest
    ├── tree-1.5.2.2-bin.mft
    └── tree-1.5.2.2-bin.ver

9 directories, 9 files

注:-A 参数在绘制线条时使用 ASCII 扩展字符,这会更好看一些。

这对我们在命令行中查看目录的组织方式还是很有作用的。但 git bash 默认并没有集成该命令。我们可以自行安装一下。

安装 tree 命令

下载:

https://gnuwin32.sourceforge.net/packages/tree.htm 下载 Windows 版预编译二进制文件:

从下载到的压缩包中解压出可执行程序 tree.exe (单独一个文件即可),放置于 git 的安装目录 /usr/bin/(默认安装情况下绝对路径通常是 C:\Program Files\Git\usr\bin)。

这时打开 Git Bash 就可以用 tree 命令了。

$ tree --help
usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]]
        [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
        [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
        [--filelimit #] [<directory list>]
  -a            All files are listed.
  -d            List directories only.
  -l            Follow symbolic links like directories.
  -f            Print the full path prefix for each file.
  -i            Don't print indentation lines.
  -q            Print non-printable characters as '?'.
  -N            Print non-printable characters as is.
  -p            Print the protections for each file.
  -u            Displays file owner or UID number.
  -g            Displays file group owner or GID number.
  -s            Print the size in bytes of each file.
  -h            Print the size in a more human readable way.
  -D            Print the date of last modification.
  -F            Appends '/', '=', '*', or '|' as per ls -F.
  -v            Sort files alphanumerically by version.
  -r            Sort files in reverse alphanumeric order.
  -t            Sort files by last modification time.
  -x            Stay on current filesystem only.
  -L level      Descend only level directories deep.
  -A            Print ANSI lines graphic indentation lines.
  -S            Print with ASCII graphics indentation lines.
  -n            Turn colorization off always (-C overrides).
  -C            Turn colorization on always.
  -P pattern    List only those files that match the pattern given.
  -I pattern    Do not list files that match the given pattern.
  -H baseHREF   Prints out HTML format with baseHREF as top directory.
  -T string     Replace the default HTML title and H1 header with string.
  -R            Rerun tree when max dir level reached.
  -o file       Output to file instead of stdout.
  --inodes      Print inode number of each file.
  --device      Print device ID number to which each file belongs.
  --noreport    Turn off file/directory count at end of tree listing.
  --nolinks     Turn off hyperlinks in HTML output.
  --dirsfirst   List directories before files.
  --charset X   Use charset X for HTML and indentation line output.
  --filelimit # Do not descend dirs with more than # files in them.

通常命令跟文件夹即可,文件夹可以是相对路径也可以是绝对路径,并且可以指定多个文件夹。

使用 Windows 自带的 tree 命令

我们要知道 Windows 的命令行工具自带了 tree 命令,展示细节上差点意思,将就一下也还行。

PS D:\root> tree tree-1.5.2.2-bin /F
卷 Data 的文件夹 PATH 列表
卷序列号为 6EDF-788C
D:\ROOT\TREE-1.5.2.2-BIN
├─bin
│      tree.exe
│
├─contrib
│  └─tree
│      └─1.5.2.2
│          │  tree-1.5.2.2-GnuWin32.README
│          │
│          ├─tree-1.5.2.2
│          └─tree-1.5.2.2-src
│                  CHANGES
│                  INSTALL
│                  LICENSE
│                  README
│
├─man
│  └─cat1
│          tree.1.txt
│
└─manifest
        tree-1.5.2.2-bin.mft
        tree-1.5.2.2-bin.ver

不过由于该命令是集成在命令行程序的,所以不能被 git bash 调用。不过我想了一个注意,在 git bash 中先执行 cmd,进入 Windows 命令行环境后再执行 tree 命令,怎么样,这招是不是很高明


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-12-22 02:55 , Processed in 0.019116 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表