bash脚本遍历目录指定后缀的文件,并执行操作 5

如,遍历log文件,需要执行的操作有目录/home/web/(包含子目录)1,遍历输出所有的子目录中,指定的后缀,如log2,执行,并移动log3,还原执行文件譬如,lo... 如,遍历log文件,需要执行的操作
有目录 /home/web/ (包含子目录)
1,遍历输出所有的子目录中,指定的后缀,如 log
2,执行,并移动log
3,还原执行文件

譬如 ,log在/home/web/3/2/9/fcn.log
手工做法如下:
cd /home/web/3/2/9/
c9 fnc.log (此时生成一个 tmp.c)
rm -rf fnc.log
mv tmp.c fnc.log

不知道如何遍历指定目录下的所有指定后缀的文件进行操作,求教!
展开
 我来答
DoramiHe
2018-03-17 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59545
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
可以使用ls或者find来完成对某个文件夹下所有文件的遍历
比如使用ls
可以简单地使用一个通配符来完成
ls 某个目录/*
也可以使用find来完成
比如
find 某个目录
自然的也可以写一个shell脚本来进行遍历
首先进行一个要遍历的文件夹
然后循环查看每个文件
如果该文件是一个文件夹的话则进入该文件夹做和上面相同的事件
这样就可以该整个文件夹内的所有文件进行遍历了
一个简单的代码如下
#!/bin/bash

function show()
{
cd $1

for i in `ls`
do
if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done

cd ..
}

show $1

exit 0
该程序不能遍历以.开头的隐藏文件
可以使用ls -a来进行遍历隐藏文件
遍历时需要注意.和..这两个特殊文件

下面是一个简单的代码
#!/bin/bash

function show()
{
cd $1

for i in `ls -a`
do
if [ "$i" == "." ] || [ "$i" == ".." ]
then
continue;
fi

if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done

cd ..
}

show $1

exit 0
追问
请不要粘贴别人的答案,  答非所问了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式