Создание рекурсивных папок с помощью скрипта linux bash - PullRequest
1 голос
/ 19 января 2020

Я уже спрашивал об этом один раз, и он был помечен как требующий большего количества деталей. Ну, это очень подробно.

Цель - создать скрипт, который создает папки следующим образом:

main

  • После создания в этой папке единственной папки с именем 'main', она создаст 6 папок 'a' с именами из цифр и букв соответственно "1a 2a 3a 4a 5a 6a"

  • После создания этих папок 6 папок 'a', это создаст 6 папок 'b' внутри КАЖДОГО из этих 6 папок 'a'. Таким образом, каждая папка 'a' будет содержать "1b 2b 3b 4b 5b 6b"

  • После создания этих 6 папок 'b' будет создаваться по 6 'c' папок в каждой из этих 6 «б» папок. Таким образом, все они будут содержать папки "1 c 2 c 3 c 4 c 5 c 6 c"

  • После этого он создаст 6 папок 'd' в каждой из папок 'c'. Таким образом, папки 'c' будут содержать «1d 2d 3d 4d 5d 6d»

  • После этого будет создано 6 папок 'e' в каждой из папок 'd'. Таким образом, папки '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 скрипт, конечно.

У меня нет кода для публикации, я пытался использовать циклы for, где i от 1 до 6, и он создает папку с именем this. Если вы действительно хотите код, который я написал для этой проблемы, я с радостью вставлю 50000+ строк mkdir, которые я написал несколько месяцев go. Эта проблема недавно пришла мне в голову, и я хотел посмотреть, сможет ли кто-нибудь еще найти решение, потому что ничто из того, что я пробовал, не сработало.

1 Ответ

1 голос
/ 19 января 2020

Как насчет

#!/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

, но я уверен, что вы можете улучшить его ...

...