需要脚本帮忙

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

需要脚本帮忙

#1

帖子 eexpress » 2005-11-08 14:31

想要在一个目录下递归找到最末端的目录,就是没有子目录的那些。
没想清楚啊。那位帮忙。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

麻烦看如何写

#2

帖子 eexpress » 2005-11-08 14:56

代码: 全选

#!/bin/bash

#search most-end directory
function fnd0() { 
   for i in `ls $1`; do
      #echo $i+"------------all"
      if [ -d $i ]; then
         fnd0 $i
      
      fi
   done
   echo $i
   return 0
} 

find0 .
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10217
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#3

帖子 oneleaf » 2005-11-08 15:00

这个可以列出全部的目录
ls -R * |grep :

然后循环一下,检查当前行在下一行是否存在,如果存在,则放弃,否则就是无子目录的目录。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#4

帖子 eexpress » 2005-11-08 15:43

这个知道。就是还要一个大循环再检测下层目录有没有。也麻烦。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

还是把上层带出来了。

#5

帖子 eexpress » 2005-11-08 16:35

代码: 全选

#!/bin/bash

#search most-end directory
function fnd0() {
   cd $1
#   echo now\ in\ path\ --`pwd`
   for i in `ls -A`; do
#      echo 'search in '$1
      if [ -d $i ]; then
#         echo enter\ path\ --$i
#         cd $i
         fnd0 $i
#         cd ..
      fi
   done
#   echo found\ most-end\ direcotry\ is\ ------------------`pwd`
   echo `pwd`
   cd ..
#   return 0
}

[! -d $1] && exit 1
exit 0
#end
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

差不多了。哎,上面的退出function时,怎么处理哦

#6

帖子 eexpress » 2005-11-08 16:46

代码: 全选

ls -RQ * |grep :$|sed 's/:$//'|sed 's/\ /\\\ /'
● 鸣学
回复

回到 “Shell脚本”