免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8563 | 回复: 11
打印 上一主题 下一主题

linux有没有象windows的tree命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-29 22:12 |只看该作者 |倒序浏览
如题

论坛徽章:
0
2 [报告]
发表于 2008-03-30 00:53 |只看该作者
有 不过目前多数distribution都没有带这个命令 需要额外安装

tree --version
tree v1.5.0 (c) 1996 - 2004 by Steve Baker, Thomas Moore, Francesc Rocher, Kyosuke Tokoro

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2008-03-30 01:36 |只看该作者
很早以前就有用shell编写的tree, CU里就有我记得

论坛徽章:
0
4 [报告]
发表于 2008-03-30 09:52 |只看该作者
3q

论坛徽章:
0
5 [报告]
发表于 2008-03-30 10:01 |只看该作者
ding

论坛徽章:
0
6 [报告]
发表于 2008-03-30 18:31 |只看该作者
find 比tree功能更强啊.

论坛徽章:
0
7 [报告]
发表于 2008-03-30 18:46 |只看该作者
原帖由 zhangshebao 于 2008-3-30 17:01 发表
find 比tree功能更强啊.

对啊,我怎么给忘记了,谢谢提醒

论坛徽章:
0
8 [报告]
发表于 2008-03-30 20:00 |只看该作者
ls -lR

论坛徽章:
0
9 [报告]
发表于 2008-03-30 21:03 |只看该作者
安装发行版并不自带的工具还是挺折腾,个人建议把find用熟就行了tree显得太弱了!

for example:

1  find /var/log -type d
2  find / -type d -maxdepth 3

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2008-04-01 23:20 |只看该作者
原帖由 寂寞烈火 于 2008-3-30 01:36 发表
很早以前就有用shell编写的tree, CU里就有我记得

我来帮忙贴一遍:)

  1. #! /bin/sh
  2. case $# in
  3. 0) curpath=$PWD ;;
  4. 1) cd $1 2>/dev/null && curpath=$PWD || exit 9 ;;
  5. *) echo "usage $0 [path]" ; exit 1 ;;
  6. esac

  7. case $(uname) in
  8. HP-UX) ECHO="echo " ;;
  9. *) ECHO="echo -e " ;;
  10. esac

  11. echo $curpath
  12. pre=$(echo $curpath |awk -F/ '{print NF}')
  13. find $curpath -name "*" -o -name ".*" 2>/dev/null |sed -n '2,$p' |while read line; do
  14. i=2
  15. num=$(echo $line |awk -F/ '{print NF}')
  16. num=$((num-pre+1))
  17. while [ $i -lt $num ] ; do
  18. $ECHO "|     \c"
  19. num=$((num-1))
  20. done
  21. $ECHO "|-----"${line##*/}
  22. done
复制代码

  1. #!/bin/sh
  2. find ./ -name "*" -o -name ".*" 2>/dev/null |sed -e 's/^\.//' |sed -n '2,$p' | while read line
  3. do
  4.   a=`echo $line |awk -F\/ '{print NF}'`
  5.   a=$((a-2))
  6.   i=1
  7.   case $a in
  8.   0) echo $line |sed -e 's/\//|---/' ;;
  9.   *) while [ ! $i -gt $a ]; do
  10.        line=`echo $line |sed -e 's/\/[^\/]*/|   /'`
  11.        i=$((i+1))
  12.      done
  13.      echo $line |sed -e 's/\//|---/' -e 's/  */   /g';;
  14.   esac
  15. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP