小编Zac*_*Zac的帖子

Makefile:生成所有子文件夹的zip文件

我正在尝试放弃临时构建脚本,该脚本会迭代项目主目录的所有子级,并为每个脚本创建相应的 zip 文件:

for i in */; do
    if [[ -d $i ]]; then
        echo "Processing folder $i";
        zip "${i%/}.zip" "$i"*.txt
        echo "Created ${i%/}.zip"
    fi
done;
Run Code Online (Sandbox Code Playgroud)

第一行很笨拙,但它只是迭代所有子目录(不包括隐藏的子目录)。正如您所看到的,逻辑很简单,但是在 Makefile 中执行此操作而不显式指定每个子目录似乎很困难。

理想情况下,我们应该从以下开始:

project
  subdir1
    file1.txt
    file2.txt
  subdir2
    file3.txt
Run Code Online (Sandbox Code Playgroud)

...并最终得到:

project
  subdir1
    file1.txt
    file2.txt
  subdir1.zip
  subdir2
    file3.txt
  subdir2.zip
Run Code Online (Sandbox Code Playgroud)

有没有办法安全地停止这种递归?

编辑:清理基本脚本,谢谢 Etan

makefile

1
推荐指数
1
解决办法
9224
查看次数

标签 统计

makefile ×1