【问题标题】:Creating recursive folders with a linux bash script使用 linux bash 脚本创建递归文件夹
【发布时间】:2020-01-19 19:44:57
【问题描述】:

我曾经问过这个问题,它被标记为需要更多详细信息。好吧,这里很详细。

目标是有一个创建文件夹的脚本,如下所示:

主要

  • 在该文件夹内创建一个名为“main”的文件夹后,它将创建 6 个分别以数字和字母命名的“a”文件夹“1a 2a 3a 4a 5a 6a”

  • 创建这 6 个“a”文件夹后,它将在这 6 个“a”文件夹中的每个文件夹中创建 6 个“b”文件夹。所以每个'a'文件夹将包含“1b 2b 3b 4b 5b 6b”

  • 创建这 6 个“b”文件夹后,它将在这 6 个“b”文件夹中的每个文件夹中创建 6 个“c”文件夹。因此,它们都将包含文件夹“1c 2c 3c 4c 5c 6c”

  • 之后,它将在每个“c”文件夹中创建 6 个“d”文件夹。所以'c'文件夹将包含“1d 2d 3d 4d 5d 6d”

  • 之后,它将在每个“d”文件夹中创建 6 个“e”文件夹。所以'd'文件夹将包含“1e 2e 3e 4e 5e 6e”

  • 之后,它将在每个“e”文件夹中创建 6 个“f”文件夹。所以'e'文件夹将包含“1f 2f 3f 4f 5f 6f”

  • 所有“f”文件夹将为空

最终结果应该是:

  1. 一个包含 6 个“a”文件夹的“主”文件夹
  2. 所有“a”文件夹都应该有 6 个“b”文件夹
  3. 所有“b”文件夹都应该有 6 个“c”文件夹
  4. 所有“c”文件夹都应该有 6 个“d”文件夹
  5. 所有“d”文件夹都应该有 6 个“e”文件夹
  6. 所有“e”文件夹都应该有 6 个“f”文件夹
  7. 所有“f”文件夹必须保持为空

这当然应该是一个 linux shell 脚本。

我没有要发布的代码,我一直在尝试 for 循环,其中 i 是从 1 到 6,它会创建一个名为的文件夹。 如果你真的想要我为这个问题写的代码,我很乐意粘贴我几个月前写的 50000+ 行 mkdir。这个问题最近出现在我的脑海中,我想看看是否有其他人可以找到解决方案,因为我尝试过没有任何工作。

【问题讨论】:

  • 欢迎来到 Stack Overflow。 SO 是一个面向专业和爱好者程序员的问答网站。目标是您将一些自己的代码添加到您的问题中,以至少显示您为解决这个问题所做的研究工作。
  • 我的想法?当然可以。想出你的想法,或许还有一个可以显示你被困在哪里的脚本草稿怎么样?如果您需要脚本方面的帮助,我想有人可以帮助您。

标签: bash algorithm recursion mkdir


【解决方案1】:

怎么样

#!/bin/bash

for a in 1 2 3 4 5 6
do
    for b in 1 2 3 4 5 6
    do
        for c in 1 2 3 4 5 6
        do
            for d in 1 2 3 4 5 6
            do
                for e in 1 2 3 4 5 6
                do
                    for f in 1 2 3 4 5 6
                    do
                        mkdir -p main/a$a/b$b/c$c/d$d/e$e/f$f
                    done
                done
            done
        done
    done
done

但我相信你可以改进它...

【讨论】:

  • 或仅mkdir -p main/a{1..6}/b{1..6}/c{1..6}/d{1..6}/e{1..6}/f{1..6}
  • 是的,这成功了!现在看,我有点傻:/。非常感谢你帮助我。我显然必须学习更多。不,不需要对您的程序进行改进。谢谢 PinkFloyd。
猜你喜欢
  • 2011-12-25
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2017-02-01
相关资源
最近更新 更多