Como criar vários arquivos com conteúdo básico - Parrot Linux

Como criar vários arquivos com conteúdo básico - Parrot Linux

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$iporque é 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 doparte do forloop. 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

informação relacionada