热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何遍历zsh中某个路径下的所有文件?

如何解决《如何遍历zsh中某个路径下的所有文件?》经验,为你挑选了1个好方法。

这是我到目前为止所拥有的:

for file in $(find /path/to/directory -type f); echo $file; done

但我得到这个错误:

zsh: parse error near `done'

Adaephon.. 27

没有必要使用find.您可以尝试以下方法:

for file in /path/to/directory/**/*(.); do echo $file; done

要么

for file in /path/to/directory/**/*(.); echo $file

** 模式递归匹配多个目录.所以a/**/b匹配b下面的任何地方a.它基本上与列表find a -name b产生匹配.

(.)是一个glob限定符,告诉zsh只匹配普通文件.它相当于-type f选项find.

你真的不需要双引号,$file因为zsh不会在替换时将变量拆分成单词.

第一个版本是for-loop 的常规形式; 第二个是没有的短形式do done

之所以你的错误是由于最后一点:在循环中运行一个命令时,你需要两个都dodone或没有.如果要在循环中运行多个命令,则必须使用它们.



1> Adaephon..:

没有必要使用find.您可以尝试以下方法:

for file in /path/to/directory/**/*(.); do echo $file; done

要么

for file in /path/to/directory/**/*(.); echo $file

** 模式递归匹配多个目录.所以a/**/b匹配b下面的任何地方a.它基本上与列表find a -name b产生匹配.

(.)是一个glob限定符,告诉zsh只匹配普通文件.它相当于-type f选项find.

你真的不需要双引号,$file因为zsh不会在替换时将变量拆分成单词.

第一个版本是for-loop 的常规形式; 第二个是没有的短形式do done

之所以你的错误是由于最后一点:在循环中运行一个命令时,你需要两个都dodone或没有.如果要在循环中运行多个命令,则必须使用它们.


推荐阅读
author-avatar
手机用户2502897401
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有