Massives Erstellen von Dateien mit Bash

Massives Erstellen von Dateien mit Bash

Ich habe versucht, das herauszufinden, habe verschiedene Befehle ausprobiert und bin immer noch nicht weitergekommen. Können Sie mir bitte bei dieser Frage helfen?

Erstellen Sie in Ihrem Home-Verzeichnis ein Unterverzeichnis mit dem Namen „shirts“. Erstellen Sie innerhalb des Unterverzeichnisses 108 Dateien mit Dateinamen in der Form style.size.color.ext, wobei jede Datei eine Kombination von Werten aus der folgenden Tabelle enthält.

Style   tee, crew, turtleneck
Size    XXL, XL, L, M, S, XS
Color   red, yellow, blue
Extension   info, inv

Dies ist der letzte Befehl, den ich verwendet habe.

$ touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

Antwort1

Es liegt ein kleiner Fehler in Ihrem Touch-Befehl vor. Ihr ursprünglicher Befehl,

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}/{info,inv}

Am Ende gibt es eine/das versucht erneut, ein Verzeichnis zu erstellen. Da das Verzeichnis nicht existiert, erhalten Sie die folgende Fehlermeldung:

touch: cannot touch `/shirts/turtleneck.XS.blue/inv': No such file or directory

Da Sie jedoch nur Dateien benötigen, müssen Sie Ihren ursprünglichen Befehl wie folgt ändern:

touch shirts/{tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

PS: Sie müssen sicherstellen, dass das Verzeichnis shirtsbereits vorhanden ist. Andernfalls erhalten Sie erneut denselben Fehler cannot touch.

Antwort2

Ihrer Beschreibung zufolge sollte der Name jeder dieser 108 Dateien dem Format folgen style.size.color.ext.

So sollte es sein

mkdir shirts
touch {tee,crew,turtleneck}.{XXL,XL,L,M,S,XS}.{red,yellow,blue}.{info,inv}

Es touchwird eine leere Datei erstellt, aber Sie versuchen, ein Verzeichnis „Shirts“ mit verschiedenen Unterverzeichnissen zu erstellen. touchDas geht nicht.

Bearbeiten: Sie können den touchobigen Befehl auch kürzer bzw. ansprechender gestalten:

touch {tee,crew,turtleneck}.{{X,XX,}L,M,{X,}S}.{red,yellow,blue}.{info,inv}

verwandte Informationen