首页
Javascript
Html
Css
Node.js
Electron
移动开发
小程序

工具类

服务端
浏览器相关
前端收藏
其他
关于
公司注册

使用tree命令生成目录树(目录结构)

2018年12月20日 发布 阅读(8329) 作者:Jerman

对于码农来说,很多项目说明都需要贴目录结构(目录树),手动写?绝对不可能的~

其实也很简单,主要就是使用tree命令,windows和linux下都可以用

windows下使用tree命令

cmd使用tree命令也是可以的,问题是使用的参数不是很多

默认只显示目录名称

语法
  1. TREE [drive:][path] [/F] [/A]

参数不区分大小写,/a,/f也是可以的

参数描述
drive:指定包含要为其显示目录结构的磁盘的驱动器
path指定要为其显示目录结构的目录
/F显示每个目录中文件的名称
/A指定树将使用文本字符而不是图形字符来显示链接子目录的行
/?在命令提示符下显示帮助
  1. D:\project\>tree /?
  2. Graphically displays the folder structure of a drive or pat
  3. TREE [drive:][path] [/F] [/A]
  4. /F Display the names of the files in each folder.
  5. /A Use ASCII instead of extended characters.
  6. D:\project\>
git下使用

如果你的windows系统下有安装git,那么我们可以把tree命令安装到git_bash下,在git_bash下就可以使用tree的很多命令了

git下安装tree

到这个地址(https://gnuwin32.sourceforge.net/packages/tree.htm) 下载tree Binaries文件

解压后,把bin目录下的tree.exe文件复制到git安装目录下的usr/bin目录即可,如例复制到C:\Program Files\Git\usr\bin

这样在git bash上就可以直接使用tree命令了
如:显示二级目录,忽略node_modules目录,不显示文件

  1. $ tree -L 2 -I "node_modules" -d
  2. .
  3. |-- app
  4. | |-- actions
  5. | |-- components
  6. | |-- constants
  7. | |-- containers
  8. | |-- dist
  9. | |-- reducers
  10. | |-- store
  11. | `-- utils
  12. |-- configs
  13. |-- dll
  14. |-- flow-typed
  15. | `-- npm
  16. |-- internals
  17. | |-- flow
  18. | |-- img
  19. | |-- mocks
  20. | `-- scripts
  21. |-- release
  22. |-- resources
  23. | `-- icons
  24. `-- test
  25. |-- actions
  26. |-- components
  27. |-- containers
  28. |-- e2e
  29. `-- reducers
  30. 27 directories

linux下使用tree命令

linux下默认是没有安装tree命令的,CentOS下使用sudo yum -y install tree

常用命令

显示最多’num’级别深度的文件和目录(其中1表示当前目录):

  1. tree -L num

仅显示目录:

  1. tree -d

同时显示隐藏文件:

  1. tree -a

打印没有缩进行的树,显示完整路径(用于-N不转义空格和特殊字符):

  1. tree -i -f

以人类可读的格式打印旁边每个节点的大小:

  1. tree -s -h

使用通配符(glob)模式过滤树:

  1. tree -P *.txt

忽略与通配符(glob)模式匹配的条目:

  1. tree -I *.txt
语法
  1. tree [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T title] [-o filename] [--nolinks] [-P pattern] [-I pattern] [--inodes] [--device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt format] [--matchdirs] [--fromfile] [--] [directory ...]
描述

树是一个递归目录列表程序产生的文件的深度缩进上市,这是彩色ALA dircolors如果LS_COLORS环境变量设置和输出是终端。如果没有参数,树将列出当前目录中的文件。当给出目录参数时,树依次列出在给定目录中找到的所有文件和/或目录。列出完成列出的所有文件/目录后,树将返回列出的文件和/或目录的总数。

默认情况下,遇到符号链接时,符号链接引用的路径将以以下格式打印在链接名称之后:

  1. name - > real-path

如果给出` -l ‘选项并且符号链接指的是实际目录,则树将遵循符号链接的路径,就像它是真实目录一样。

列表选项
参数描述
-d仅列出目录。
-l如果它们指向目录,则遵循符号链接,就像它们是目录一样。检测到时,将避免将导致递归的符号链接。
-F打印每个文件的完整路径前缀。
-X只保留当前的文件系统。Ala 找到 -xdev 。
-L级别目录树的最大显示深度。
-R递归地向下遍历每个级别目录的树(请参阅-L选项),并在每个目录中执行树再次添加` -o 00Tree.html’作为新选项。
-P 模式仅列出与通配符模式匹配的文件。注意:您必须使用-a选项来考虑以点”.”开头的那些文件。匹配。有效的通配符运算符是”*”(任何零个或多个字符),”?” (任何单个字符),[...]'(括号内列出的任何单个字符(可选 - - 破折号)可用于字符范围:ex:[AZ])和[^ …]’(任何单个字符未在括号中列出)和”|”分隔交替模式。
-I 模式不要列出与通配符模式匹配的文件。
—ignore-case如果-P或-I选项指定了匹配模式,则这将导致模式匹配,而不考虑每个字母的大小写。
—matchdirs如果-P选项指定匹配模式,则会导致将模式应用于目录名称(除文件名外)。如果目录名称匹配,则对目录的内容禁用匹配。如果使用—prune选项,则不会修剪与该模式匹配的空文件夹。
—prune从输出中创建树修剪空目录,与-P或-I一起使用时非常有用。有关此选项的更多信息,请参阅下面的错误和注释。
—noreport忽略在树列表末尾打印文件和目录报告。
—charsetcharset设置输出HTML和绘图时使用的字符集。
—filelimit #不要下载包含多个#条目的目录。
—timefmt 格式打印(隐含-D)并根据使用strftime(3)语法的格式字符串格式化日期。
-o filename将输出发送到文件名。
文件选项
参数描述
-q将文件名中的不可打印字符作为问号而不是默认值打印。
-N按原样打印不可打印的字符,而不是转义的八进制数字。
-Q用双引号引用文件名。
-p打印每个文件的文件类型和权限(根据ls -l)。
-u打印文件的用户名或UID#(如果没有可用的用户名)。
-G打印文件的组名称或GID#(如果没有可用的组名称)。
-s以字节为单位打印每个文件的大小以及名称。
-H以更易读的方式打印每个文件的大小,例如附加千字节(K),兆字节(M),千兆字节(G),太字节(T),千兆字节(P)和艾字节(E)的大小字母。
—si像-h一样,但使用SI单位(1000的幂)。
—du对于每个目录报告,其大小为其所有文件和子目录(及其文件等)的大小的累积。最终报告中也给出了已用空间的总量(如’du -c ‘命令。)此选项要求树在发出之前读取整个目录树,请参阅下面的错误和注释。意思是-s。
-D打印上次修改时间的日期,或者如果使用-c,则列出所列文件的最后状态更改时间。
-F为目录附加一个/',为套接字文件添加一个=’,为可执行文件添加一个*',为一个门(Solaris)添加一个>’和一个`|’ 对于FIFO,按照ls -F
—inodes打印文件或目录的inode编号
—device打印文件或目录所属的设备编号
排序选项
参数描述
-v按版本对输出进行排序。
-t按上次修改时间而不是按字母顺序对输出进行排序。
-C按上次状态更改而不是按字母顺序对输出进行排序。修改-D选项(如果使用)以打印上次状态更改而不是修改时间。
-U不要排序。按目录顺序列出文件。禁用—dirsfirst。
-r按相反顺序对输出进行排序。这是一种改变上述种类的元排序。使用-U时禁用此选项。
—dirsfirst在文件之前列出目录。这是一种改变上述种类的元排序。使用-U时禁用此选项。
—sort [ = ]类型按类型而不是名称对输出进行排序。可能的值包括:ctime(-c),mtime(-t),大小或版本(-v)。
图形选项
参数描述
-一世使树不打印缩进行,与-f选项一起使用时非常有用。当与-J或-x选项一起使用时,也会尽可能多地删除空格。
-一个打印压痕线时打开ANSI线图形黑客。
-S打开CP437线图形(使用Linux控制台模式字体时很有用)。此选项现在等效于` —charset = IBM437’,最终可能会折旧。
-n始终关闭着色,由-C选项覆盖。
-C如果未设置LS_COLORS或TREE_COLORS环境变量,则使用内置颜色默认值始终打开着色。用于将输出着色到管道。
XML / JSON / HTML选项
参数描述
-X打开XML输出。将目录树输出为XML格式的文件。
-J打开JSON输出。将目录树输出为JSON格式的数组。
-H baseHREF打开HTML输出,包括HTTP引用。对ftp站点很有用。baseHREF在使用HTML输出时给出基本ftp位置。也就是说,本地目录可能是/ local / ftp / pub',但它必须被引用为ftp://hostname.organization.domain/pub’(baseHREF应该是`ftp://hostname.organization.domain “)”提示:不要在此选项中使用ANSI行,并且不要在目录列表中提供多个目录。如果您希望通过CSS样式表使用颜色,除此选项外还使用-C选项强制颜色输出。
-T 标题在HTML输出模式下设置标题和H1标题字符串。
—nolinks关闭HTML输出中的超链接。

参考

https://www.mankier.com/1/tree#--ignore-case
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/tree
http://gnuwin32.sourceforge.net/packages/tree.htm

版权声明:本站文章除特别声明外,均采用署名-非商业性使用-禁止演绎 4.0 国际 许可协议,如需转载,请注明出处
  • macbook单独设置鼠标和触控面板的滚动方向

    macbook单独设置鼠标和触控面板的滚动方向

    发布:2021-12-31 阅读(2340)

  • python2安装 pip for MacOs

    发布:2021-12-14 阅读(2407)

  • MacBook安装homebrew

    MacBook安装 homebrew,最烦的会报Failed to connect to raw.githubusercontent.com port 443: Connection refused。然后就没然后了,可能会一直安装不成功

    发布:2021-11-18 阅读(2125)

  • 利用AsteriskPassword查看Xshell保存的密码

    如何查看xshell保存的密码?

    发布:2021-11-12 阅读(5656)

  • Unable to negotiate with 106.52.160.162 port 22: no matching host key type found. Their offer: ssh-rsa fatal: Could not read from remote repository.

    Unable to negotiate with 106.52.160.162 port 22: no matching host key type found. Their offer: ssh-rsa fatal: Could not read from remote repository.

    发布:2021-11-09 阅读(4387)

  • 500 Internal Privoxy Error - for v2rayN

    500 Internal Privoxy Error Privoxy encountered an error while processing your request: Could not load template file forwarding-failed or one of its included components. Please contact your proxy administrator. If you are the proxy administrator, please put the required file(s)in the (confdir)/templates directory. The location of the (confdir) directory is specified in the main Privoxy config file. (It's typically the Privoxy install directory).

    发布:2021-09-23 阅读(3937)

  • nps局域网(内网)穿透怎么配置?

    nps是什么?nps局域网(内网)穿透怎么配置?nps的客户端,服务端怎么玩?

    发布:2021-04-17 阅读(1414)

  • vscode中如果在两个窗口打开同一个项目(目录)

    公司配置了两个屏幕,我想两个屏幕同时使用vscode打开同一个项目,正常来说vscode是不能这样操作的,怎么办呢?使用workspace

    发布:2020-07-10 阅读(11533)

  • IDEA控制台中文乱码解决

    关于IDEA中文乱码的解决方法

    发布:2019-12-23 阅读(2976)

  • 微信开发者工具打开报错:无法加载以下来源的扩展程序

    无法加载以下来源的扩展程序

    发布:2019-12-03 阅读(2170)

  • 使用git hooks(post-receive)实现简单的远程自动部署

    使用git hooks(post-receive)实现简单的远程自动部署

    发布:2019-06-05 阅读(5513)

  • linux下设置git(pull,push等)免密码操作

    linux下,设置git免密码操作

    发布:2019-06-04 阅读(3061)

  • 批量转换LF和CRLF的小技巧

    做跨平台开发移植的时候,最常见的问题就是不同操作系统的换行不同(例如,Windows 上是 CRLF,而 Linux 上是 LF,MacOS 以前是 CR,现在也是 LF),如果不注意的话,可能会导致编译的时候报诡异的错误,虽然说有些优秀的文本工具(notepad++, vscode 等)可以自动转换,但是它们都没有提供批量转换的方法,所以一旦遇到有成百上千个的文件需要转换,那么一个个手动去转明显效率低下。虽然网上提到批量转换的文章很多,但是感觉都没有介绍清楚,可能大神们都觉得太简单了吧。。。为了同学们能够和我一样少走弯路,我就把我的转换过程详细记录下来。

    发布:2019-05-24 阅读(7750)

  • 源文件名长度大于文件系统支持的长度。请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称

    源文件名长度大于文件系统支持的长度。请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称

    发布:2019-05-07 阅读(4557)

  • vscode插件开发,发布

    vscode插件开发过程

    发布:2019-03-27 阅读(3539)

  • 什么是第一输入延迟(First Input Delay)

    第一输入延迟(FID)测量用户首次与您的站点交互时的时间(即,当他们单击链接,点击按钮或使用自定义的JavaScript驱动控件时)到浏览器实际能够的时间回应这种互动。

    发布:2019-03-07 阅读(5892)

  • vs code非常实用的插件

    推荐一些vs code开发中,非常实用的插件

    发布:2019-03-04 阅读(3602)

  • 查看浏览器、操作系统、分辨率等使用份额~

    浏览器、操作系统、分辨率等使用份额~

    发布:2019-02-25 阅读(2323)

  • 使用MuMu模拟器和fiddler抓包app

    是不是觉得用手机调试app h5页面很麻烦?是不是不方便抓APP的包?在电脑上可以抓吗,可以,用mumu+fiddler就走向人生巅峰了。。。

    发布:2019-01-24 阅读(6909)

  • ESLint的使用

    eslint使用注意事项

    发布:2019-01-03 阅读(3483)

  • 'define' is not defined.'$' is not defined.

    eslint环境变量设置

    发布:2019-01-02 阅读(5842)

  • windows下利用nvm安装node,管理node版本

    nvm是node安装及版本管理工具

    发布:2018-12-29 阅读(2873)

  • git cherry-pick使用指南

    **git cherry-pick**可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交.

    发布:2018-12-28 阅读(3134)

  • 找回Git中丢失的Commit(git如何撤消reset操作)

    在使用Git的过程中,有时候会因为一些误操作,比如reset、rebase、merge等。特别是在Commit之后又执行了`git reset --hard HEAD`强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时自己的Commmit记录也消失了。碰到这种情况,不要慌,我们在Git上做的任何操作都只是在原来之前的操作上做修改,并且会被记录下来保存,也就是说无论你做了什么,对于Git来说都可以进行回滚操作。

    发布:2018-12-28 阅读(2581)

  • eslint:no-case-declarations

    该规则禁止词法声明(`let`,`const`,`function`和`class`在)`case/ default`条款。原因是词法声明在整个开关块中是可见的,但只有在分配时才会被初始化,这只有在达到定义它的情况下才会发生。

    发布:2018-12-28 阅读(3095)

  • eslint:no-restricted-globals

    如果您希望通过启用环境来允许一组全局变量,但仍希望禁止其中某些变量,则禁止使用特定的全局变量非常有用。 例如,早期的Internet Explorer版本将当前的DOM事件暴露为全局变量 event,但是长期以来,使用此变量一直被认为是一种不好的做法。限制此操作将确保在浏览器代码中不使用此变量。

    发布:2018-12-28 阅读(4632)

  • git bisect 命令教程

    它的原理很简单,就是将代码提交的历史,按照两分法不断缩小定位。所谓"两分法",就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。

    发布:2018-12-27 阅读(2285)

  • git输入不显示,只有光标在闪的问题

    当在git操作log,如`git log`后,然后非正常退出,即使用`CTRL+C`退出,这个时候git输入命令就不会显示了,只有光标,这时怎么办?

    发布:2018-12-26 阅读(3873)

  • .gitignore文件配置不生效

    .gitignore文件配置不生效

    发布:2018-12-24 阅读(3728)

  • 使用husky、lint-staged、prettier、eslint保持团队代码一致

    团队成员多,虽然制定了代码规范,但也不一定能执行的起来,时间一长,各自的代码规范可能又会有出入了。husky解决了这个问题,让代码检查自动化,流程化,如果不符合规范,则不能commit

    发布:2018-12-24 阅读(9282)

  • Sinon 入门,看这篇文章就够了

    当我们在开发前端项目的时候, 很多时候需要根据后端返回的数据来渲染页面, 我们通常使用AJAX发送请求给服务端。当我们开发后端逻辑的时候有时候需要连接数据库,根据从数据库中得到的数据来执行后续的逻辑代码, 或者其他的依赖, 甚至会更加复杂棘手。这些开发都存在一个共同的局限性, 就是会去依赖别的服务, 需要别的系统的支持。 例如, 如果我们使用Ajax请求网络, 您需要有一个服务器来响应对应的请求。对于数据库, 您需要有一个为测试设置的测试数据库

    发布:2018-12-21 来源:segmentfault

  • 使用tree命令生成目录树(目录结构)

    项目目录树是如何做的?手动写吗,不可能的,很简单就是使用tree命令

    发布:2018-12-20 阅读(8329)

  • git修改当前项目用户

    git修改当前项目用户

    发布:2018-12-11 阅读(2196)

  • Git修改最近一次已经提交了的commit及push

    Git修改最近一次已经提交了的commit及push

    发布:2018-12-11 阅读(1838)

  • git常用命令

    git常用命令,git查看某个文件的修改记录,分支备注

    发布:2018-11-30 阅读(2937)

  • Git 分支 - 分支的新建与合并

    发布:2018-11-27

  • ESlint: switch case缩进问题:Expected indentation of 16 spaces but found 20.

    ESlint报错:Expected indentation of 16 spaces but found 20,Expected indentation of 12 spaces but found 16.

    发布:2018-11-08 阅读(11777)

  • ESLint Parsing error: Unexpected token ...

    eslist报错: Unexpected token ...

    发布:2018-11-07 阅读(12687)

  • git diff忽略某些文件,不比较

    通过设置git-diff driver,结合.gitattributes文件,使git diff命令忽略某些目录。例如我们只希望看到比较src目录,不希望看到比较dist目录

    发布:2018-10-26 阅读(6407)

  • git教程(写的比较详细,适合初学者,值得阅读)

    学习这本书的目的是让你了解版本控制,并且尽可能快速简单的掌握 Git。但是和另外一些关于介绍版本控制的图书不一样,阅读这本书并不需要你有很专业的 IT 或者电脑背景知识,它也面向那些编程的初学者,软件构架师,或者是项目经理。在技术方面你也不需要有很多专业知识,我们会以循序渐进的方式帮助你来理解版本控制和掌握 Git。

    发布:2018-10-19 来源:git-tower.com

  • git打包成tar\zip文件

    git如何打包增量文件?

    发布:2018-05-30 阅读(5891)

  • github push免密码

    github push时免密码

    发布:2015-01-05 阅读(1774)

  • Image Optimizer5.0—非常不错的JPG,GIF,PNG,TIFF图片无损压缩工具

    用了很多图片压缩工具,Image Optimizer5.0图片压缩工具,个人觉得是非常不错的,特别是对JPG图片的压缩,真正能达到不改变图片质量,图片大小压缩达到50%以上。图片压缩能达到50%以上,这对网站性能是很大的提升的。

    发布:2013-10-29 阅读(2659)