
Queria saber como posso criar x quantidade de arquivos com conteúdo em uma pasta?
Por exemplo:
Quero criar 250 arquivos com conteúdo básico em minha pasta de teste de arquivos localizada em meu diretório inicial.
Tudo o que realmente preciso de ajuda é como criar muitos arquivos com conteúdo para fins de teste usando o shell bash.
Qualquer ajuda seria apreciada.
Responder1
Você pode codificar um loop que cria um arquivo com conteúdo e executá-lo 250 vezes:
for i in $(seq 1 250) ; do echo -n "content" > ~/test/file$i ; done
Explicação:
seq 1 250
: mostra números de 1 a 250. Será usado por for para contar quanta corrida você precisa.echo -n "content" > ~/test/file$i
: salve o "conteúdo" em seus arquivos na pasta "teste" localizada em seu diretório inicial.
Eu prefiro usar echo -n > file$i
porque é mais rápido que touch file$1
:
>> time ./01.sh
./01.sh 0,03s user 0,06s system 28% cpu 0,316 total
>> time ./02.sh
./02.sh 0,01s user 0,00s system 77% cpu 0,017 total
01.shcontente:
#!/bin/bash
for i in {001..250} ; do touch ./01/file$i ; done
02.shcontente:
#!/bin/bash
for i in {001..250} ; do echo -n > ./02/file$i ; done
Responder2
Para começar, você pode começar com este simples bash for loop:
for i in {001..250} ; do touch ./file$i ; done
Isso criará 250 arquivos vazios no diretório atual, denominados file001 até file250.
Touch (neste caso) apenas cria um arquivo, caso ele não exista. Arquivo vazio. Se quiser criar arquivos com algo neles, você pode alterar a do
parte do for
loop. Por exemplo do cp ./master.file ./newfile.$i
- que copiará o arquivo chamado master.file nos 250 novos arquivos e esses serão chamados de newfile.001 até newfile.250.
É muito confuso? Levei um tempo para entender como essas coisas funcionam no bash, mas depois que consegui, uso-o quase todos os dias. Então fique à vontade para perguntar, tentarei explicar mais e/ou melhor.
Responder3
Em complemento à resposta anterior (muito boa), vou me concentrar em colocar algum conteúdo nos arquivos - neste caso, 3 palavras aleatórias em inglês e um número aleatório:
$ for a in {001..009}
do
(shuf -n 3 /usr/share/dict/words ; echo $RANDOM) > FILE_$a
done
Exemplo de arquivo gerado:
$ cat FILE_005
atrophy
grays
backdate
9612