CentOS上是否存在等效的树?
答案 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