我是靠谱客的博主 高兴保温杯,这篇文章主要介绍linux 递归移动目录,linux shell for循环解决递归循环目录结构,现在分享给大家,希望可以做个参考。

今天总结一下关于linux shell里的递归循环的问题

起因是一个群友在群里的提问

问的是怎么把有或多或少空目录的几个文件移动走的问题

归根结底就是一个递归循环的问题

如果之前接触过c语言之类的编程语言、那么这个很好理解

就是通过函数来不断的自己调用自己

这种方法有一个很大的弊端就是需要很多资源

比如有一种进程调用的 fork 炸弹 就是自调用搞的

接下来我就贴一下代码然后简单的讲解一下

#!/bin/sh

. /etc/plus.lib

a()

{

for file  in `ls $1`

do

if [ -d $1"/"$file ];then

a $1"/"$file

else

echo $1"/"$file

fi

done

}

a /tmp

那么这个就是整个的代码

通过一个大的循环

然后判断是目录还是文件

如果是一个文件的话、就把它echo出来、当然这个脚本没有功能、

如果是想要做一些处理的话、可以自行处理

如果不是一个文件而是一个目录的话、

那就调用自己重新循环一遍当前目录

root@lp:/tmp/tmp# sh a.sh

/tmp/a/01

/tmp/a/1/02

/tmp/a/1/asdasf/ashfakjsgba

/tmp/a/aaa

/tmp/b/03

/tmp/tmp/a.sh

就总结这么多,以后有机会再补充

最后

以上就是高兴保温杯最近收集整理的关于linux 递归移动目录,linux shell for循环解决递归循环目录结构的全部内容,更多相关linux内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部