热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxCommand系列:Tree

Linux命令可以用浩瀚如烟来形容,那怎么办呢,我也很绝望啊,平时工作接触到的也就那么几个命令,那就平时自己多攒点,关键时候用上了就是物超所值:)最近想学的东西一大堆,今天晚上没啥

Linux 命令可以用浩瀚如烟来形容,那怎么办呢,我也很绝望啊,平时工作接触到的也就那么几个命令,那就平时自己多攒点,关键时候用上了就是物超所值 :)

最近想学的东西一大堆,今天晚上没啥事,有时间可以静下来学习一波,然而当双手放在键盘上准备大干一场的时候,突然脑子却一片空白,不知道该先学啥。沉默了一会,越想越乱,难道今天又不在学习状态???

心没法平静,还是学点短小精悍的实用知识好了,Linux 的命令多而杂,学会单独一个命令不需要花多大的精力,就能使用它的基本用法了。

那么今天就先学一个实用的 Linux 命令:tree

撒花 ~~

tree 会将一个目录的所有内容以树状图的格式列出来。这是一个非常整齐简洁且实用的程序,你可以再命令行中使用它来查看你的文件系统的结构。

$ tree -d -L 2
.
├── app
│ ├── Console
│ ├── Exceptions
│ ├── Http
│ └── Providers
├── bootstrap
│ └── cache
├── config
8 directories

描述

tree 是一个递归列举目录内容的程序,它以缩进长短不同的方式展现不同层级的文件(如果设置了 LS_COLORS 环境变量的话,展现的内容会带有颜色,更加的好看美观)。

最简单的用法就是直接使用 tree,不带任何参数,默认会将当前目录的内容全部列举出来(如果这个目录的文件很多还是不要建议这么干,因为你会看到很长很长很长的一条树状结构,然后你发现也看不出啥来)。

tree 打印出来的内容最后一行总会显示出它列举出来的文件或目录的数量,所以也可以变相的将其用作统计某一个目录下有多少个文件的用途,就想下面这样~

$ tree
.
├── ClassLoader.php
├── LICENSE
├── autoload_classmap.php
├── autoload_files.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
└── installed.json
0 directories, 9 files

默认情况下,如果列举的内容中存在软链接的话,tree 会将其指向的实际路径也打印出来,就像这样:

├── php -> ../Cellar/php71/7.1.7_19/bin/php

语法

学命令最痛苦的就是它的参数,通常的做法就是把常用的几个参数记住,想不起来了就 man 一下(这里推荐一款与 man 很像的工具(tldr),但比 man 更方便和简洁,实用性更强~)

tree [-adfgilnopqrstuxACDFNS] [-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]
[directory ...]

它的可选项也很多,下面只列举一些常用的哦。

参数描述
–help列举使用说明
–version输出版本信息
-a默认不会输出隐藏文件,比如那些以.开头的文件,带上这个参数就能把所有文件都打印出来
-d只会输出目录,而不会输出文件
-L level最大展示的目录层级
-I pattern不显示那些匹配给定通配符的文件
-P pattern只显示那些匹配给定通配符的文件
-p额外显示目录和文件的读写权限

例子

tree

以树状图的格式显示当前目录的内容,包括子目录。类似下面的图表:

.
├── assets
│ ├── data
│ │ ├── data1.bin
│ │ ├── data2.sql
│ │ └── data3.inf
│ └── images
│ ├── background.jpg
│ ├── icon.gif
│ └── logi.jpg
├── config.dat
├── program.exe
└── readme.txt

3 directories, 9 files

tree -d -L 2

只显示目录,且层级不超过2层。输出如下:

.
└── assets
├── data
└── images
3 directories

tree -I 'data*|con???.dat'

过滤掉以 data 开头的文件,或者以 con 开头,紧跟三个任意字符,以 .dat 结尾的文件。输出如下:

.
├── assets
│ └── images
│ ├── background.jpg
│ ├── icon.gif
│ └── logi.jpg
├── program.exe
└── readme.txt
2 directories, 5 files

tree -P 't*'

与 -I 参数刚好相反,只显示匹配通配符的文件,在这里就是只显示以 t 开头的文件。输出如下:

.
└── assets
├── data
└── images
3 directories, 0 files

tree -P 't*' -p

额外显示目录和文件的读写权限。输出如下:

.
└── [drwxr-xr-x] assets
├── [drwxr-xr-x] data
└── [drwxr-xr-x] images
3 directories, 0 files

今天是不是 Get 了一个新知识点了呢~~

参考链接

  • Linux tree command

首发于我的个人博客:StephenCode,欢迎交流~


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • php7 curl_init(),php7.3curl_init获取301、302跳转后的数据
    最近在做一个蜘蛛项目,发现在抓取数据时,有时会碰到301的页面,原本写的curl_init函数php7-远程获取api接口或网页内容&#x ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
author-avatar
CH_Double_C
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有