分页: 1 / 1

需要脚本帮忙

发表于 : 2005-11-08 14:31
eexpress
想要在一个目录下递归找到最末端的目录,就是没有子目录的那些。
没想清楚啊。那位帮忙。

麻烦看如何写

发表于 : 2005-11-08 14:56
eexpress

代码: 全选

#!/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 .

发表于 : 2005-11-08 15:00
oneleaf
这个可以列出全部的目录
ls -R * |grep :

然后循环一下,检查当前行在下一行是否存在,如果存在,则放弃,否则就是无子目录的目录。

发表于 : 2005-11-08 15:43
eexpress
这个知道。就是还要一个大循环再检测下层目录有没有。也麻烦。

还是把上层带出来了。

发表于 : 2005-11-08 16:35
eexpress

代码: 全选

#!/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

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

发表于 : 2005-11-08 16:46
eexpress

代码: 全选

ls -RQ * |grep :$|sed 's/:$//'|sed 's/\ /\\\ /'