最近工作中需要以树状图的方式列出当前目录下面的文件结构,因此花了几分钟时间研究了下Tree的使用,故有此文。

如果是在Linux和Windows系统下,可以直接使用tree命令来查看目录的文件树,但是Mac OSX系统中提示没有相应的命令。

Mac OSX系统中想以文件树的方式查看目录,有两种方式;

① 执行下面的shell命令

$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

上面的命令行可以帮助我们完成需求,但这种方式相对不太友好,所以不推荐。

② 下载Tree组件使用(推荐)

在Mac OSX系统中,我们可以通过brew来下载Tree使用,下载后使用的方式和linux下保持一致。

说明:如果系统中没有brew,那么需要先自行安装。
[Homebrew](https://brew.sh/)是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具。
Homebrew将这些工具统统安装到了 /usr/local/Cellar 目录中,并在 /usr/local/bin 中创建符号链接。
Homebrew基于Ruby,安装过程请参考官网示例。

brew安装好之后,使用下面的命令来安装Tree组件。

$ brew install tree

Tree组件安装完成之后,可以通过 $ tree --version命令来查看版本并验证安装是否成功。

目前,最新的版本为v1.7.0,更详细的信息请移步Tree组件官网

另外,Tree提供了很多的命令选项来帮助我们对目录打印进行更精细的控制,可以通过$ tree --help命令来查看具体信息。

usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-T title ]
[-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version]
[--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst]
[--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>]
[--sort[=]<name>] [--matchdirs] [--ignore-case] [--] [<directory list>]
------- Listing options -------
-a All files are listed.
-d List directories only.
-l Follow symbolic links like directories.
-f Print the full path prefix for each file.
-x Stay on current filesystem only.
-L level Descend only level directories deep.
-R Rerun tree when max dir level reached.
-P pattern List only those files that match the pattern given.
-I pattern Do not list files that match the given pattern.
--ignore-case Ignore case when pattern matching.
--matchdirs Include directory names in -P pattern matching.
--noreport Turn off file/directory count at end of tree listing.
--charset X Use charset X for terminal/HTML and indentation line output.
--filelimit # Do not descend dirs with more than # files in them.
--timefmt <f> Print and format time according to the format <f>.
-o filename Output to file instead of stdout.
-------- File options ---------
-q Print non-printable characters as '?'.
-N Print non-printable characters as is.
-Q Quote filenames with double quotes.
-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.
--si Like -h, but use in SI units (powers of 1000).
-D Print the date of last modification or (-c) status change.
-F Appends '/', '=', '*', '@', '|' or '>' as per ls -F.
--inodes Print inode number of each file.
--device Print device ID number to which each file belongs.
------- Sorting options -------
-v Sort files alphanumerically by version.
-t Sort files by last modification time.
-c Sort files by last status change time.
-U Leave files unsorted.
-r Reverse the order of the sort.
--dirsfirst List directories before files (-U disables).
--sort X Select sort: name,version,size,mtime,ctime.
------- Graphics options ------
-i Don't print indentation lines.
-A Print ANSI lines graphic indentation lines.
-S Print with CP437 (console) graphics indentation lines.
-n Turn colorization off always (-C overrides).
-C Turn colorization on always.
------- XML/HTML/JSON options -------
-X Prints out an XML representation of the tree.
-J Prints out an JSON representation of the tree.
-H baseHREF Prints out HTML format with baseHREF as top directory.
-T string Replace the default HTML title and H1 header with string.
--nolinks Turn off hyperlinks in HTML output.
---- Miscellaneous options ----
--version Print version and exit.
--help Print usage and this help message and exit.
-- Options processing terminator.

常用的命令参数列出如下:

-------清单选项-------
-a 列出所有文件和目录。
-d 仅仅列出目录名称。
-f 打印显示每个文件的完整路径前缀。
-L 后面跟数字,控制列出几级目录。
--------文件选项---------
-q 用"?"号取代控制字符,列出文件和目录名称。
-N 直接列出文件和目录名称,包括控制字符。
-Q 用双引号引用文件名。
-p 列出文件的权限标示。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-s 打印每个文件的字节大小。
-------排序选项-------
-v 按文本字母数字排序文件。
-t 按上次修改时间对文件进行排序。
-c 按上次状态更改时间对文件进行排序。
-U 保留文件未排序。
-r 反转排序的顺序。
--dirsfirst列出文件之前的目录(-U禁用)。
-------图形选项------
-i 不要打印缩进线。
-A 打印ANSI线图形缩进线。
-S 使用CP437(控制台)图形缩进线打印。
-n 始终关闭着色(-C覆盖)。
-C 总是打开彩色。
------- XML / HTML / JSON选项-------
-X 打印树的XML表示。
-J 打印出树的JSON表示。
-H baseHREF以baseHREF作为顶层目录打印HTML格式。
----其他选项----
--version打印版本并退出。

使用示例:

wendingding:wendingdingDemo wendingding$ cd /Users/文顶顶/Desktop/wendingdingDemo
wendingding:wendingdingDemo wendingding$ tree -L 1
.
├── Gruntfile.js
├── demo
├── demo.html
├── dist
├── index.html
├── node_modules
├── package-lock.json
├── package.json
└── src 4 directories, 5 files

开发工具系列004-Mac系统中Tree的使用的更多相关文章

  1. mac系统中搭建apache+mysql+php的开发环境,安装mysql后,登录报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    php新手在mac系统中搭建apache+mysql+php的开发环境(按照这篇博客来操作的:http://my.oschina.net/joanfen/blog/171109?fromerr=xvC ...

  2. 【转】iOS开发工具系列(按功能分)

    http://www.cocoachina.com/newbie/basic/2014/0417/8187.html 这是我们多篇iOS开发工具系列篇中的一篇,此前的文章比如:那些不能错过的Xcode ...

  3. 新买苹果电脑,mac系统中小白应该了解哪些东西?

    本文旨在分享新买了mac电脑,应该做哪些设置,帮助苹果电脑小白轻松上手使用mac电脑,当然,新电脑肯定是需要安装各种软件,这里,小编推荐一下可以看看小编写的mac软件装机必备Mac 装机必备软件推荐, ...

  4. C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列49 Web网页集成BIMFACE应用的技术方案>中介绍了目前市场主流 ...

  5. Mac系统中安装Nginx

    ​ 一.前言 本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习. 二.正文 1.安装 Homebrew homebrew是什么?它是Mac中的一款软件包 ...

  6. mac系统中怎么打开rar/zip等压缩文件?

    平常使用mac的同学们,可能经常要接受下别人发过来的rar文件,可惜的时mac os x系统默认是不能打开rar文件(不知道以后苹果会支持rar不?),那么我们该如何去解圧rar文件,接下来我将介绍. ...

  7. Mac系统中各个文件夹简单介绍(转)

    一.说明: Mac OS X,这是一个基于UNIX核心的系统,增强了系统的稳定性.性能以及响应能力.它能通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D.3D和多媒体图形性能以及广泛的字体 ...

  8. C#开发BIMFACE系列49 Web网页中加载模型与图纸的技术方案

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在BIMFACE二次系列博客中详细介绍了服务器端API的调用方式,如下列表 C#开发BIMFACE系列1   BIMFAC ...

  9. C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<C#开发BIMFACE系列52 CS客户端集成BIMFACE应用的技术方案>中介绍了多种集成BIM ...

  10. 关于Mac系统中my sql 和navicat for mysql 的连接问题。

    我这个完完全全的技术小小白,经过数个小时的网搜,navicat for mysql和mysql终于可以可以正常连接了,好开森啊!,我把我遇到的问题,以及解决方法记录下来,希望也可以对遇到同样问题的能够 ...

随机推荐

  1. 依赖注入的方式( 构造函数注入 、 set 方法注入 、注解注入)

    一.构造函数注入 二.set方式注入 三.集合注入

  2. python批量下载网易云音乐文件到本地

    现在听歌大多数只支持在线听,下载要钱,没网络就白搭了.好吧,用技术手段解决免费.下载.批量等一些列问题 整个脚本的逻辑和流程是,把歌曲地址都存在一个txt中,然后循环每次取一条链接,分析链接对应歌曲的 ...

  3. 如何在Uniapp项目中引入uni_modules中的依赖?

    在Uniapp项目中引入uni_modules中的依赖分为以下几种情况: 对于通用组件: 如果你已经通过HBuilderX插件市场安装了某个uni_modules组件,通常只需在页面的.vue文件中按 ...

  4. windows里的一些常用的dos命令

    --------------------------------------------- 1. 中断命令执行 Ctrl + Z 2. 文件/目录 cd   切换目录 例:cd   // 显示当前目录 ...

  5. 掌握DevEco Studio模拟器这些“隐藏功能”,让鸿蒙应用调试效率事半功倍

    在鸿蒙应用开发过程中,调试环节常常直接影响开发效率与体验.为提升开发者调试的便捷性与效率,华为在DevEco Studio上提供了模拟器功能,它不仅能模拟鸿蒙手机.折叠屏.平板等真实设备的基本功能,还 ...

  6. SpringBoot事件驱动开发

    应用启动过程生命周期事件感知(9大事件).应用运行中事件感知(无数种) 事件发布:ApplicationEventPublisherAware或注入:ApplicationEventMulticast ...

  7. idea中代码提交流程(git版)

    本文主要分享一下如何通过idea通过git拉取项目并且进行编辑后提交到远程master上进行合并. 1.安装idea编译器,我们用的是社区版本2021.1,安装步骤略过. 2.打开idea,点击Fil ...

  8. 数字孪生工厂实战指南:基于Unreal Engine/Omniverse的虚实同步系统开发

    引言:工业元宇宙的基石技术 在智能制造2025与工业元宇宙的交汇点,数字孪生技术正重塑传统制造业.本文将手把手指导您构建基于Unreal Engine 5.4与NVIDIA Omniverse的实时数 ...

  9. RPC实战与核心原理之服务发现

    服务发现:到底是要CP还是AP? 回顾 "怎么设计一个灵活的 RPC 框架" 总结起来,就是怎么在 RPC 框架中应用插件,用插件方式构造一个基于微内核的 RPC 框架,其关键点就 ...

  10. Linux 在文件中统计关键字出现的次数

    摘要:在当前文件或者当前目录下所有文件中,使用Linux命令grep.awk.sed.rg或者cat统计关键字出现的次数. 目录 问题背景 解决办法 使用grep和wc命令 使用awk命令模式匹配 使 ...