Файл Bash, который создает каталог и подкаталоги

#linux #bash

#linux #bash

Вопрос:

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

Например:

 How many directories would you like to create?

user input: 3

folder1    
      |-folder2    
              |-folder3
  

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

 #!/bin/bash
read -p "How many directories would you like?" num_folder
if test $num_folder -lt 10
then
    for ((i=0; i<num_folder; i  )); do
      mkdir folder$i        
    done

    tree -c

    read -rsp "Press enter to continue"
    clear

else
    echo "Please write a number between 1 and 10"      
fi
  

Комментарии:

1. Выполните cd folder$i after mkdir folder$i в цикле

2. О, боже мой. Большое вам спасибо!

Ответ №1:

Другим решением может быть использование -p параметра с mkdir .

 mkdir -p "$(seq -f "folder%0.0f" -s "/" $num_folder)"
  

Комментарии:

1. seq не определен в POSIX, но вопрос помечен bash , поэтому вы можете использовать что-то вроде $(eval printf "folder%s/" {1..$num_folder})

2. @tripleee Спасибо, что рассказали мне этот способ расширения в виде фигурных скобок.

Ответ №2:

как насчет:

 seq 1 3 | xargs mkdir
  

вы можете просто использовать числа.