Como criar 100 subdiretórios usando um script Bash?

14

Estou tentando criar 100 subdiretórios diferentes em determinados diretórios usando um script Bash.

Começo com um forloop básico (ou seja, for f in $FILES;do mkdir f done), mas não funciona.

Para esclarecer o que eu quero fazer: tento obter 100 subdiretórios diferentes nos diretórios atuais (aqui eu uso home='pwd'). Por exemplo, no diretório /home/paul/main_directory/.

E aqui eu gostaria de criar 100 diretórios com índice de 1 a 100, assim:

subdirectory_1
subdirectory_2
subdirectory_3
subdirectory_4
.
.
.
subdirectory_100
Pavol Namer
fonte

Respostas:

19

Para responder sua pergunta usando o forloop sugerido - a expressão entre chaves mencionada por steeldriver também funciona:

for i in {1..100}; do mkdir subdirectory_$i; done

Para responder sua pergunta atualizada:

Ambos - a resposta da steeldriver e a minha são ambas destinadas a serem de uma linha.

Se você quiser usar isso em um script Bash, provavelmente escreverá como:

#!/bin/bash
for i in {1..100}
do
    mkdir subdirectory_$i
done
rkn
fonte
desculpe, eu não quero editar sua resposta, eu só quero comentar ... ai ...
Pavol Namer
Muito obrigado, pela sua resposta muito rápida, agora eu tenho. Obrigado muitas vezes, este seguro-me muito tempo :)
Pavol Namer
1
uma alternativa para os casos em que você não tem um BASH completo, mas apenas um / bin / sh, você pode usar seq: for i in $(seq 1 100); do mkdir dir_$i; done
Daniel Llewellyn
Cria um diretório '{1..3}', quando tentou fazer o mesmo 3 vezes. Alguma pista do que poderia ter dado errado?
soufrk 30/05
40

A maneira mais fácil é provavelmente usar a expansão de chaves

mkdir subdirectory_{1..100}
chave de aço
fonte
8

Para adicionar um pouco da resposta verdadeiramente impressionante dada por steeldriver:

Você pode criar diretórios que classifiquem "corretamente" preenchendo com zero.

mkdir subdirectory_{001..100}

(Se você gostou desta resposta, vote com mais facilidade na resposta de steeldriver. Ainda não posso comentar ou o faria.)

MDeBusk
fonte
Cria um subdiretório chamado 'subdiretório_ {001..100}'. Qualquer pista sobre o que pode ter dado errado.
soufrk 30/05
Nenhuma idéia. Funciona muito bem para mim aqui. Você está usando o bash?
MdeBusk