这是我到目前为止所拥有的:
for file in $(find /path/to/directory -type f); echo $file; done
但我得到这个错误:
zsh: parse error near `done'
Ada*_*hon 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之所以你的错误是由于最后一点:在循环中运行一个命令时,你需要两个都do和done或没有.如果要在循环中运行多个命令,则必须使用它们.