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

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

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}

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.)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.