Wie erstelle ich Verzeichnisse mit Indexnummern?

Wie erstelle ich Verzeichnisse mit Indexnummern?

Ich möchte unter Linux Verzeichnisse erstellen hal-01. hal-30Gibt es einen einzelnen Befehl, der dies erledigt?

Antwort1

Sie können den folgenden Befehl verwenden: mkdir hal-{01..30}(zumindest wenn Sie eine Shell verwenden, die diese Form der Zeichenfolgenerweiterung unterstützt (Bash tut dies)).

So erklären Sie, was es tut:

$ echo {01..30}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Wie Sie sehen, {01..30}wurde es auf eine Reihe von Argumenten erweitert. Dies funktioniert, wenn Ihre geschweiften Klammern auch innerhalb eines Strings vorkommen:

$ echo hal-{01..30}
hal-01 hal-02 hal-03 hal-04 hal-05 hal-06 hal-07 hal-08 hal-09 hal-10 hal-11 hal-12 hal-13 hal-14 hal-15 hal-16 hal-17 hal-18 hal-19 hal-20 hal-21 hal-22 hal-23 hal-24 hal-25 hal-26 hal-27 hal-28 hal-29 hal-30

Jetzt akzeptiert mkdir eine Reihe von Argumenten und erstellt für jedes davon ein Verzeichnis. Sie erhalten also das gewünschte Ergebnis, wenn Sie mkdirstattdessen verwenden echo.

Antwort2

Verwenden Sie Klammererweiterungen, etwa wie folgt: mkdir hal-{01..30}

Antwort3

mkdir ~/example/folder{1..30} wenn Sie 30 möchten

Antwort4

Sie können seq(1)hierfür zB auch verwenden:

mkdir $(seq --format="~/example/folder/HAL-%02.0f" 1 30)

Kann andere Sachen machen, wie verschiedene Schritte und so weiter. Aus unerfindlichen Gründen rechnet es mit Floats (!?), das printf(3)-ähnliche Format muss entsprechend angepasst werden. Das funktioniert sogar mit einfachen Shells, die keine ausgefallenen Erweiterungen machen.

verwandte Informationen