• 一天一个 Linux 命令(12):tree 命令


    一、简介

    Linux系统下一个非常有用的命令:tree命令,它可以通过树形结构显示文件目录结构,非常适合于我们给别人介绍我们的文件目录的组成框架,同时该命令使用适当的参数也可以将命令结果输出到文本文件中。

    tree是一个递归目录列表程序,它生成一个深度缩进的文件列表(如果设置了LS_COLORS环境变量,则会着色)并输出为tty。 如果没有参数,树将列出当前目录中的文件。 当给出目录参数时,树依次列出在给定目录中找到的所有文件和/或目录, 然后返回列出的文件和/或目录的总数。

    如果系统内没有tree命令,则使用以下命令安装

    #yum 安装
    yum install tree
    #apt-get 安装
    apt-get install tree
    

    二、格式说明

    usage: tree [-acdfghilnpqrstuvxACDFQNSUX] [-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>] [<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.
      --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.
      --du          Print directory sizes.
      --prune       Prune empty directories from the output.
      -------- 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.
      -r            Sort files in reverse alphanumeric order.
      -t            Sort files by last modification time.
      -c            Sort files by last status change time.
      -U            Leave files unsorted.
      --dirsfirst   List directories before files (-U disables).
      ------- Graphics options ------
      -i            Don't print indentation lines.
      -A            Print ANSI lines graphic indentation lines.
      -S            Print with ASCII graphics indentation lines.
      -n            Turn colorization off always (-C overrides).
      -C            Turn colorization on always.
      ------- XML/HTML options -------
      -X            Prints out an XML 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.
    

    三、选项说明

    -a 显示所有文件和目录。
    -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
    -c 按上次状态更改时间排序文件
    -C 在文件和目录清单加上色彩,便于区分各种类型。
    -d 显示目录名称而非内容。
    -D 列出文件或目录的更改时间。
    -f 在每个文件或目录之前,显示完整的相对路径名称。
    -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
    -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
    -i 不以阶梯状列出文件或目录名称。
    -L level 限制目录显示层级。
    -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
    -n 不在文件和目录清单加上色彩。
    -N 直接列出文件和目录名称,包括控制字符。
    -p 列出权限标示。
    -P<范本样式> 只显示符合范本样式的文件或目录名称。
    -q 用"?"号取代控制字符,列出文件和目录名称。
    -v 按版本字母数字排序文件
    -s 列出文件或目录大小。
    -S 用ASCII绘图字符显示缩进行打印
    -t 用文件和目录的更改时间排序。
    -T 用字符串替换默认的HTML标题和H1标题
    -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
    -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
    -X 以XML形式输出树
    

    四、命令功能

    执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。 这是一个非常简洁实用的程序,您可以在命令行中使用它来查看文件系统的结构。

    五、常见用法

    1.输出树层目录结构

    tree
    
     

    2.输出树层目录时使用 -L 参数指定遍历层级,如显示目录的1层结构

    tree -L 1
    
     

    3.只显示目录及下面的文件

    tree -d 
    
     

    4.把目录的结构树导出到文件

    tree -L 3 > tree.txt
    
     

    5.过滤不想要显示的文件或者文件夹,如不显示test.txt文件

    tree -I "test.txt"
    
     

    6.只输出1层目录

    tree -Ld 1
    
     

    7.查看某一个目录的文件结构

    tree /root/test/test3
    
     

    8.列出目录时,显示目录或者文件的权限

    tree -p
    
     

     

  • 相关阅读:
    【数学】三分法
    【数学】【背包】【NOIP2018】P5020 货币系统
    【数学】【CF27E】 Number With The Given Amount Of Divisors
    【单调队列】【P3957】 跳房子
    【极值问题】【CF33C】 Wonderful Randomized Sum
    【DP】【CF31E】 TV Game
    【神仙题】【CF28D】 Don't fear, DravDe is kind
    【线段树】【CF19D】 Points
    【字符串】KMP字符串匹配
    【二维树状数组】【CF10D】 LCIS
  • 原文地址:https://www.cnblogs.com/joshua317/p/15270992.html
Copyright © 2020-2023  润新知