手机
当前位置:查字典教程网 >脚本专栏 >linuxshell >shell脚本递归遍历目录及子目录的例子分享
shell脚本递归遍历目录及子目录的例子分享
摘要:用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。实例1:复制代码代码如下:#!/bin/shfunctio...

用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。

实例1:

复制代码 代码如下:

#!/bin/sh

function scandir() {

local cur_dir parent_dir workdir

workdir=$1

cd ${workdir}

if [ ${workdir} = "/" ]

then

cur_dir=""

else

cur_dir=$(pwd)

fi

for dirlist in $(ls ${cur_dir})

do

if test -d ${dirlist};then

cd ${dirlist}

scandir ${cur_dir}/${dirlist}

cd ..

else

echo ${cur_dir}/${dirlist}

fi

done

}

if test -d $1

then

scandir $1

elif test -f $1

then

echo "you input a file but not a directory,pls reinput and try again"

exit 1

else

echo "the Directory isn't exist which you input,pls input a new one!!"

exit 1

fi

实例2:递归读取目录及其子目录

复制代码 代码如下:#! /bin/bash

function read_dir(){

for file in `ls $1`

do

if [ -d $1"/"$file ] //注意此处之间一定要加上空格,否则会报错

then

read_dir $1"/"$file

else

echo $1"/"$file

fi

done

}

#测试目录 test

read_dir test

这样给test.sh加上执行权限即可执行

复制代码 代码如下:chmod +x test.sh

sh test.sh

到此即可通过传递参数来读取目录文件了。

实例3:

复制代码 代码如下:

递归实现各个子目录孙目录......

#!/bin/bash

#modify.func

doit() //处理当前目录下的非目录文件,忽略目录文件

{

oldname=`ls | grep "$1$"`

for name in $oldname

do

if [ -d "$name" ]

then :

else

basename=`echo $name | awk -F "." '{print $1}'`

newname="$basename$2"

echo -e "$PWD/$namett$newname"

mv $name $newname

count=`expr ${count} + 1`

fi

done

return 0

}

do_recursive() //从当前目录开始,递归处理各目录

{

doit $1 $2

for filename in `ls`

do

if [ -d "$filename" ]

then

cd $filename

do_recursive $1 $2

cd ..

fi

done

return 0

}

modify() //处理当前目录,并报告结果,这个相当于主函数,也可以直接调用do_recursive

{

PARAMS=2

if [ $# -ne $PARAMS ]

then

echo "usage: mv_to .suf1 .suf2"

return 1

fi

count=0

do_recursive $1 $2

echo "complete! $count files have been modified."

return 0

}

【shell脚本递归遍历目录及子目录的例子分享】相关文章:

Shell脚本实现批量下载资源并保留原始路径

shell脚本监控系统负载、CPU和内存使用情况

shell替换文件中的文件路径脚本分享

shell脚本实现的网站日志分析统计(可以统计9种数据)

shell脚本中28个特殊字符的作用简明总结

shell监控脚本 准备工作分享

使用Shell 脚本实现每隔100行插入一条记录且记录第一列包含行号其他列不变

一键配置CentOS iptables防火墙的Shell脚本分享

一个Linux系统安全设置的Shell脚本的分享(适用CentOS)

shell脚本函数:控制颜色、定位、居中显示的代码

精品推荐
分类导航