【问题标题】:Creating multiple folders and their subfolders in one go一次创建多个文件夹及其子文件夹
【发布时间】:2019-11-24 06:51:21
【问题描述】:

我有以下文件夹结构,最后一个文件夹中有 20-30 个子文件夹,我想看看使用 linux 命令在我的机器上创建所有这些文件夹的最快方法是什么。

我的文件夹结构:

Folder A ---- Project A -----Sample 1
Folder A ---- Project A -----Sample 2
Folder A ---- Project A -----Sample 3

所以你可以在上面看到,有三个级别 - 文件夹,然后是项目,然后是示例。

如果我使用文本文件或您推荐的任何文件,最好的方法是什么。

【问题讨论】:

标签: linux directory


【解决方案1】:

要准确创建上述内容,这个 Bash 单行应该可以工作。

for i in {1..30};do mkdir -p Folder_A/Project_A/Sample_"$i";done 创建:

├── Folder_A
│   ├── Project_A
│       ├── Sample_1
│       ├── ...
│       ├── Sample_30

如果你想要更复杂的东西,你可以这样做

for f in top_level_1 top_level_2; do for i in sub_folder_1 sub_folder_2;do mkdir -p Folder_A/$f/$i;done;done

或者把它变成一个完整的 bash 脚本和execute it

#!/bin/bash
for f in mid_level_1 mid_level_2;
        do for i in sub_folder_1 sub_folder_2;
                do mkdir -p parent_directory/$f/$i
        done
done

这给出了这个结构:

├── parent_directory
│   ├── mid_level_1
│       ├── sub_folder_1
│       ├── sub_folder_2
│   ├── mid_level_2
│       ├── sub_folder_1
│       ├── sub_folder_2

您可以通过更改单词for 之后的目录列表来更改创建的目录。 bash for 循环的说明可以找到here

如果您需要更复杂的东西,请使用这些原则并尝试编写一个可以做到的 bash 脚本。我认为这才是编程/编写脚本的真正乐趣所在。

【讨论】:

  • 当你写“for I”时,这里的“I”是什么意思?有没有办法在文本文件中列出来创建所有文件夹,以便 fit 可以遵循文本文件中列出的层次结构?
  • "i" 用于 for 循环,就像在大多数编程语言中使用的一样。
  • 好的,但是使用上面的命令,它怎么知道给我的子文件夹提供什么文件夹名称。我不想只创建随机的 30 个文件夹。我想要具体的名字。
  • 我会更新我的答案,以更清楚地说明你是如何做到这一点的。
  • 谢谢梅森,将等待更新的答案。这对我会有帮助。谢谢
猜你喜欢
  • 2016-05-27
  • 2018-08-09
  • 2022-06-13
  • 2020-07-18
  • 1970-01-01
  • 2010-10-07
  • 2017-01-27
  • 2019-01-02
  • 1970-01-01
相关资源
最近更新 更多