linux中递归查看目录树,newLISP 递归访问目录树

一个简单的递归函数,可以遍历目录树中的所有文件,传递另一个处理函数,该函数可以接受文件路径作为参数,从而决定如何处理。

下面是调用例子:

#!/usr/bin/newlisp

(load "file.lsp") (define (show-file file-path)   (println (string file-path ": " (file-info file-path)))           ) (FILE:recursive-access-dir "/opt/" show-file)

(exit)

recursive-access-dir就是递归函数, show-file是另一个函数,显示了接收的文件路径和file-info信息。

(context 'FILE)

(define (recursive-access-dir dir-path file-op)   (dolist (nde (directory dir-path {^[^.]}))     (if (directory? (append dir-path nde))         (recursive-access-dir (append dir-path nde "/") file-op)       (file-op (append dir-path nde)))))

注意:

正则表达式 ^[^.] 代表只查找不以.开头的文件或者目录,因此排除了. 和 ..

该递归算法是深度优先算法,一旦发现一个目录,一定会将其下的所有路径都遍历完才会返回到开始, 然后才处理下一个兄弟目录。

newLISP 的详细介绍:请点这里

newLISP 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值