Criando arquivo de texto com conteúdo dentro de uma lista mkdir

1

Eu usei o mkdir para criar uma pasta pai com mais 10 pastas filho usando mkdir -p pai \ child {1..10} . Agora preciso criar um arquivo txt em cada uma dessas 10 pastas filho como (nome da pasta pai) .txt

Não consigo usar o comando touch, pois cada documento de texto também precisa ter uma linha de texto.

Minha ideia original era criar um loop que tornasse cada pasta filha e arquivo txt com a linha de texto especificada 10 vezes. Eu percebi que isso seria ineficiente.

Eu posso criar todas as 10 pastas filhas e a pasta pai com um único comando. Como eu poderia criar os arquivos de texto de maneira eficiente com a linha de texto? Ou foi a minha ideia original a melhor maneira de fazer isso?

    
por DMck 26.11.2017 / 22:53

1 resposta

2

Uma das abordagens pode parecer:

mkdir -p parent/child{1..10}
for d in parent/child{1..10}; do echo "This file is stored in ${d##*/}" > "$d/parent.txt"; done

Visualizando resultados:

$ head parent/child*/parent.txt
==> parent/child10/parent.txt <==
This file is stored in child10

==> parent/child1/parent.txt <==
This file is stored in child1

==> parent/child2/parent.txt <==
This file is stored in child2

==> parent/child3/parent.txt <==
This file is stored in child3

==> parent/child4/parent.txt <==
This file is stored in child4

==> parent/child5/parent.txt <==
This file is stored in child5

==> parent/child6/parent.txt <==
This file is stored in child6

==> parent/child7/parent.txt <==
This file is stored in child7

==> parent/child8/parent.txt <==
This file is stored in child8

==> parent/child9/parent.txt <==
This file is stored in child9
    
por 26.11.2017 / 23:18