Shell 递归遍历文件夹

写这段程序纯属意外,第一次弄Shell,网上搜了一堆才写出来一段准备把maven的repo下的非Sources的jar文件加入到CLASSPATH中。当然最后失败了,因为这个文件夹太大了,很长时间遍历不完,但还好留下了这段遍历文件夹并根据文件后缀名判断文件类型的代码。
Java代码
CLASSPATH=.
## 把文件路径加入到CLASSPATH中
function append_path(){
file_suffix=`echo $1 | awk '{print substr($0,length($0)-2)}'`
source_suffix=`echo $1 | awk '{print substr($0, length($0)-10)}'`
if [ "jar" = $file_suffix ]; then
if [ "sources.jar" != $source_suffix ]; then
CLASSPATH=$CLASSPATH:$1
fi
fi
}

##递归遍历文件夹
function iterate_dir(){
for file in $1/*
do
if [ -f $file ]; then
append_path $file
else
iterate_dir $file
fi
done

export CLASSPATH
}

## 这个是方法调用的入口
iterate_dir ~/repo
附:
其实即使上面的程序耗时很短,把相关的jar文件路径加入到了CLASSPATH,其实也会有问题的,大家知道maven库会维护同一个三方包的多个版本,如果同时加入到CLASSPATH中,必然会导致冲突。
另外,在一个Terminal中单独引入一个三方包的方法:
Java代码
CLASSPATH=$CLASSPATH:/home/enjiex/repo/jdbc/mysql/mysql-connector/5.1.5/mysql-connector-5.1.5.jar
export CLASSPATH
echo $CLASSPATH ##查看是否加入到了CLASSPATH中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值