Erstellen einer Textdatei mit Inhalt innerhalb einer MKDIR-Liste

Erstellen einer Textdatei mit Inhalt innerhalb einer MKDIR-Liste

Ich habe mkdir verwendet, um einen übergeordneten Ordner mit 10 zusätzlichen untergeordneten Ordnern zu erstellen.mkdir -p Eltern\Kind{1..10}. Ich muss jetzt in jedem dieser 10 Unterordner eine txt-Datei mit dem Namen (Name des übergeordneten Ordners).txt erstellen.

Ich kann den Touch-Befehl nicht verwenden, da jedes Textdokument auch eine Textzeile enthalten muss.

Meine ursprüngliche Idee war, eine Schleife zu erstellen, die jeden Unterordner und jede txt-Datei mit der angegebenen Textzeile einzeln 10 Mal erstellt. Ich dachte, das wäre ineffizient.

Ich kann alle 10 Unterordner und den übergeordneten Ordner mit einem einzigen Befehl erstellen. Wie würde ich mit der Textzeile effizient vorgehen, um die Textdateien zu erstellen? Oder war meine ursprüngliche Idee die beste Vorgehensweise?

Antwort1

Einer der Ansätze könnte wie folgt aussehen:

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

Ergebnisse anzeigen:

$ 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

verwandte Informationen