CentOS目录结构如树?

时间:2011-04-20 15:17:10

标签: linux bash centos

CentOS上是否存在等效的树?

5 个答案:

答案 0 :(得分:36)

如果您的Centos系统上没有安装树(我通常建议服务器设置无论如何都要使用最小的安装盘),您应该在命令行中输入以下内容:

# yum install tree -y

如果没有安装它,因为您没有正确的存储库。我会使用Dag Wieers存储库:

http://dag.wieers.com/rpm/FAQ.php#B

之后你可以进行安装:

# yum install tree -y

现在你准备好了。请务必阅读手册页:http://linux.die.net/man/1/tree

所以很简单,以下内容将返回一棵树:

# tree

或者,您可以将其输出到文本文件。还有很多选项。再次,如果您正在寻找默认输出以外的其他内容,请阅读您的手册页。

# tree > recursive_directory_list.txt

(^^在文本文件中供以后查看^^)

答案 1 :(得分:12)

你可以制作自己的原始“树”(为了好玩:))

#!/bin/bash
# only if you have bash 4 in your CentOS system
shopt -s globstar
for file in **/*
do
    slash=${file//[^\/]}
    case "${#slash}" in
        0) echo "|-- ${file}";;
        1) echo "|   |--  ${file}";;
        2) echo "|   |   |--  ${file}";;
    esac
done

答案 2 :(得分:8)

正如您所见here。默认情况下,未在CentO中安装树,因此您需要查找RPM并手动安装

答案 3 :(得分:5)

基础仓库中有树。

显示它(yum list package-name):

# yum list tree
Available Packages
tree.i386               1.5.0-4               base

安装它:

yum install tree

(在CentOS 5和6上验证)

答案 4 :(得分:0)

我需要在不允许我yum安装的远程计算机上工作。所以我修改了 bash-o-logist 的答案以获得更灵活的答案。

它需要一个(可选)参数,即您要显示的子目录的最大级别。将其添加到您的 $PATH,并享受无需安装的 tree 命令。

我不是 shell 专家(为了这个非常短的脚本,我不得不在谷歌上搜索了很多次)。所以如果我做错了什么,请告诉我。非常感谢!

#!/bin/bash
# only if you have bash 4 in your CentOS system

shopt -s globstar # enable double star

max_level=${1:-10}

for file in **
do
    # Get just the folder or filename
    IFS='/'
    read -ra ADDR <<< "$file"
    last_field=${ADDR[-1]}
    IFS=' '

    # Get the number of slashes
    slash=${file//[^\/]}
    
    # print folder or file with correct number of leadings
    if [ ${#slash} -lt $max_level ]
    then
        spaces="   "
        leading=""
        if [ "${#slash}" -gt 0 ]
        then
            leading=`eval $(echo printf '"|${spaces}%0.s"' {1..${#slash}})`
        fi
        echo "${leading}|-- $last_field"
    fi
done