Criando vários diretórios

0

Estou lutando com a sintaxe correta para criar uma série de diretórios. Vamos dizer 50. Esses diretórios terão um arquivo de índice neles todos iguais. Eu tenho esse código Bash, mas não consigo descobrir a sintaxe do código para fazê-lo funcionar. Alguém pode me falar por favor. Obrigado

for f in foo/bar{00..50}; do 
   mkdir -p $f && printf "text\n goes\n here" > $f/index
    
por Antony 11.01.2018 / 18:11

3 respostas

2

Método mais fácil:

mkdir -p foo/bar{00..50}
$ ls foo/
bar00  bar02  bar04  bar06  bar08  bar10  bar12  bar14  bar16  bar18  bar20  bar22  bar24  bar26  bar28  bar30  bar32  bar34  bar36  bar38  bar40  bar42  bar44  bar46  bar48  bar50
bar01  bar03  bar05  bar07  bar09  bar11  bar13  bar15  bar17  bar19  bar21  bar23  bar25  bar27  bar29  bar31  bar33  bar35  bar37  bar39  bar41  bar43  bar45  bar47  bar49

Portanto, a primeira parte pode ser:

 mkdir -p foo/bar{00..50}

E então tudo o que você precisa criar são os arquivos "index" com o texto.

Em relação à segunda parte, eu usaria um arquivo de referência

touch file2
vi file2 (and add content)
shop -s globstar && for f in **/*(/); do cp -p file2 "$f/index"; done
    
por Rinzwind 11.01.2018 / 18:54
2

bash para a sintaxe do loop é

for ...; do ...; done

Então

for f in foo/bar{00..10}; do 
  mkdir -p $f && printf "text\n goes\n here\n" > $f/index
done

Dá:

$ tree foo
foo
├── bar00
│   └── index
├── bar01
│   └── index
├── bar02
│   └── index
├── bar03
│   └── index
├── bar04
│   └── index
├── bar05
│   └── index
├── bar06
│   └── index
├── bar07
│   └── index
├── bar08
│   └── index
├── bar09
│   └── index
└── bar10
    └── index

11 directories, 11 files
    
por Max 11.01.2018 / 18:59
0

É assim que eu fiz

crie diretórios filhos

mkdir -p ./blabla{1..10}

copia o arquivo necessário (neste caso, seu chamado indexmultitest.html) para o diretório pai / home / antony / Downloads / blabla /

mova para o diretório pai cd / home / antony / Downloads / blabla /

copia o arquivo necessário nos diretórios para d em * /; do cp indexmultitest.html "$ d"; feito

Isso lhe dá uma quantidade de diretórios, cada um com um arquivo designado.

Agora, uma pergunta se eu quisesse criar uma série de diretórios que não tivessem nomes previsíveis, como blabla01, blabla02, blabla03 etc, para que alguém pudesse adivinhar os nomes dos diretórios no meu servidor ???

    
por Antony 16.01.2018 / 10:29