如何理解这个 find with while 循环在 Bash 中的工作原理

How to understand how this find with while loop works in Bash

我怎样才能更好地理解这个语法?

find ~/Documents/project/updates -type d -name "Branch*[0-9]" -maxdepth 1 -mtime -2 -print |\
while read path; do
    dir_name=$(basename $path)
    function_call $dir_name
done
  1. 生成目录列表find

    • ~/Documents/project/updates在此路径下寻找目录
    • -type d 只查找“目录”(而不是文件、索引节点或其他文件类型)
    • -name "Branch*[0-9]" 仅查找名称与此通配符匹配的目录
    • maxdepth 1看起来不低于一层深度
    • -mtime -2修改时间-2天
  2. 现在我们有了一个列表,对于该列表中的每个项目,

    • dir_name=$(basename $path) 将“dir_name”设置为目录basename
    • function_call $dir_name 用“$dir_name”调用“function_call”

强烈建议:

暂时将 set -xv 添加到 shell 脚本的顶部并观察结果:)