热门标签 | 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,欢迎交流~


推荐阅读
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Git应用技巧与实战经验分享
    在使用 Git 进行代码管理时,有时会遇到无法访问 `https://github.com` 仓库的问题,具体表现为 OpenSSL SSL_read 错误,连接被重置(errno 10054)。本文将深入探讨这一问题的成因,并分享多种解决方法,包括检查网络配置、更新 Git 版本以及调整 SSL 设置等,帮助开发者有效应对类似问题。此外,文章还将介绍一些实用的 Git 技巧和实战经验,提升代码管理和协作效率。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
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社区 版权所有