开发工具系列004-Mac系统中Tree的使用
最近工作中需要以树状图的方式列出当前目录下面的文件结构,因此花了几分钟时间研究了下Tree的使用,故有此文。
如果是在Linux和Windows系统下,可以直接使用tree命令来查看目录的文件树,但是Mac OSX系统中提示没有相应的命令。
Mac OSX系统中想以文件树的方式查看目录,有两种方式;
① 执行下面的shell命令
$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
上面的命令行可以帮助我们完成需求,但这种方式相对不太友好,所以不推荐。
② 下载Tree组件使用(推荐)
在Mac OSX系统中,我们可以通过brew来下载Tree使用,下载后使用的方式和linux下保持一致。
[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的使用的更多相关文章
- 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 ...
- 【转】iOS开发工具系列(按功能分)
http://www.cocoachina.com/newbie/basic/2014/0417/8187.html 这是我们多篇iOS开发工具系列篇中的一篇,此前的文章比如:那些不能错过的Xcode ...
- 新买苹果电脑,mac系统中小白应该了解哪些东西?
本文旨在分享新买了mac电脑,应该做哪些设置,帮助苹果电脑小白轻松上手使用mac电脑,当然,新电脑肯定是需要安装各种软件,这里,小编推荐一下可以看看小编写的mac软件装机必备Mac 装机必备软件推荐, ...
- C#开发BIMFACE系列50 Web网页中使用jQuery加载模型与图纸
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列49 Web网页集成BIMFACE应用的技术方案>中介绍了目前市场主流 ...
- Mac系统中安装Nginx
一.前言 本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习. 二.正文 1.安装 Homebrew homebrew是什么?它是Mac中的一款软件包 ...
- mac系统中怎么打开rar/zip等压缩文件?
平常使用mac的同学们,可能经常要接受下别人发过来的rar文件,可惜的时mac os x系统默认是不能打开rar文件(不知道以后苹果会支持rar不?),那么我们该如何去解圧rar文件,接下来我将介绍. ...
- Mac系统中各个文件夹简单介绍(转)
一.说明: Mac OS X,这是一个基于UNIX核心的系统,增强了系统的稳定性.性能以及响应能力.它能通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D.3D和多媒体图形性能以及广泛的字体 ...
- C#开发BIMFACE系列49 Web网页中加载模型与图纸的技术方案
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在BIMFACE二次系列博客中详细介绍了服务器端API的调用方式,如下列表 C#开发BIMFACE系列1 BIMFAC ...
- C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<C#开发BIMFACE系列52 CS客户端集成BIMFACE应用的技术方案>中介绍了多种集成BIM ...
- 关于Mac系统中my sql 和navicat for mysql 的连接问题。
我这个完完全全的技术小小白,经过数个小时的网搜,navicat for mysql和mysql终于可以可以正常连接了,好开森啊!,我把我遇到的问题,以及解决方法记录下来,希望也可以对遇到同样问题的能够 ...
随机推荐
- Unity3d中协程的原理,你要的yield return new xxx的真正理解之道
- MySQL 在设计表(建表)时需要注意什么?
MySQL 在设计表(建表)时需要注意的要点 设计数据库表是 MySQL 开发中非常重要的一环.合理的表结构设计可以提升性能.减少存储开销,并提高维护性.以下是一些关键的注意事项: 1. 明确需求和数 ...
- win自带的远程桌面内网也能用简直太香了,mstsc配置方法以及解决由于没有远程桌面授权服务器可以提供许可证
以前都是用mstsc命令远程连接控制有公网ip的服务器,最近内网设置了下也能用简直太香了,终于不用担心某desk限时长限次数了: 配置方法: 右键 计算机 选择属性,点击远程设置,在远程协助框中勾选 ...
- Modbus-RTU报文结构及常用功能码详解
Modbus-RTU报文结构及常用功能码 Modbus是一种串行通讯协议,是Modicon公司(现在的施耐德电气)于1979年为使用可编程逻辑控制器(PLC)通信而发表的.现在的Modbus协议已经成 ...
- 获取IP地址避免XFF攻击(使用nginx)
//以下代码可以获取到客户端IP,但是可能会有XFF攻击,伪造IP地址 request.getHeader("x-forwarded-for"); 解决办法 //从Nginx中X- ...
- Laravel RCE(CVE-2021-3129)漏洞复现
Laravel框架简介 Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且 ...
- Java中的位运算符、移位运算符
目录 1 概述 2 位运算符 2.1 $(与) 2.2 |(或) 2.3 ^(异或) 2.4 ~(非) 3 移位运算 3.1 左移运算符:<< 3.2 右移运算符:>> 3.3 ...
- 智表ZCELL产品V2.0发版小感
不知不觉,智表从诞生以来已经两年多了,首先感谢各位用户的支持,没有大家的支持,智表这个产品估计早就已经终止了,正是大家的支持和鼓励,智表才一步一步走到了今天.智表最初是从一个简单不能再简单的table ...
- SQL 强化练习 (五)
果然日常练练这些 sql 是非常有必要的, 这几日的报表开发, 用一款过程软件 fineReport, 相对于我之前用 Tableau 来做报表, 这个帆软, 确实更加适合中国人哦, 而Tableau ...
- 网络编程:反应堆reactor框架设计
https://app.yinxiang.com/fx/7e601cad-6501-4fe7-8e4e-f0fbd9d02c4b TCP 高性能网络框架需要满足的需求有以下三点: 1)采用 react ...