automatisches Erstellen von Verzeichnissen in der linux-shell

Es gibt 8 Antworten in diesem Thema, welches 2.046 mal aufgerufen wurde. Der letzte Beitrag (14. Oktober 2014 um 16:02) ist von GI-Joe.

  • Moin Moin !

    ich grübel hier gerade vor einem vermutlich einfach zu lösenen Problem:

    Ich möchte über die shell (bash) automatisiert Verzeichnisse erstellen, die die Namen der Buchstaben des Alphabets haben sollen, also als Ergebnis sollte es so aussehn:

    Code
    Verzeichnis1: a
    Verzeichnis2: b
    Verzeichnis3: c
    .
    .
    .
    Verzeichnis26: z


    Ich probierte mkdir [a-z] , aber als Ergebnis bekam ich EIN Verzeichnis mit dem Namen '[a-z]' :whistling:
    Dann probierte ich nur mal so zum Testen mkdir [0-9] , aber als Ergebnis bekam ich EIN Verzeichnis mit dem Namen '[0-9]' - hmm ...

    also wenn ich z.B. ein umount /dev/sdb[1-3] mache, dann erfolgt ganz brav ein umount von /dev/sdb1, /dev/sdb2 und /dev/sdb3 .

    Hat hier mal jemand einen Tipp für mich, warum es mit mkdir so nicht funzt ?
    Zur Not würde ich es auch über eine FOR - Schleife machen, nur wie ? Irgendwie hab ich gerade einen shell-blackout ....

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.

  • Das [a-z] ist ein Bash sonderzeichen und bedeutet einen Buchstaben in dieser reihe. Sinnvoll z.B. für "ls [a-z]*" um sich alle Dateien beginnend mit kleinen Buchstaben anzeigen zu lassen.
    Was du möchtest ist jedoch eine Forschleife:
    for i in a b c d e f; do mkdir $i; done
    Ob man das Aufzählen der Buchstaben noch vereinfachen kann ist mir unbekannt.

    PS:
    aus deinem Befehl "umount /dev/sdb[1-3]" macht die Shell ein "umount /dev/sdb1 /dev/sdb2 /dev/sdb3", da die Shell diese Dateien auch so im Filesystem findet.

    Mega Drive | Neo Geo AES 3-4 | Apple IIe | C64 ASSY 250407 | A500+ | A1000 (GB-Edition) | A3000D rev.9.01 | A4000D rev.B

  • Man kann:

    Quellcode:
    for d in {a..z} ; do
    mkdir $d
    done


    Dankeeeeee, das hab ich gebraucht ! Dann war ich ja schon fast richtig ;)
    nun geht es auch ohne die for-schleife:
    mkdir {a..z} erzeugt mir die 26 Verzeichnisse in einem Rutsch !

    Wieso steht sowas eigentlich nicht ein meinem Buch "Shell-Skript-Programmierung" ??
    hmm ....

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.

  • Welches Buch hast du denn da? Etwa das hier?


    nö, Bitte melde dich an, um diesen Link zu sehen. in Bitte melde dich an, um diesen Link zu sehen..

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.

  • Code
    mkdir {a..z}


    Die for-Schleife is unnötig.

    Q: Warum steht das nicht in Shell-Bücher?
    A: es ist bash-isch oder wie of geschrieben ien Bash-ismus und funktionier nicht auf jeder Shell/System.

  • Code
    mkdir {a..z}


    Die for-Schleife is unnötig.

    Q: Warum steht das nicht in Shell-Bücher?
    A: es ist bash-isch oder wie of geschrieben ien Bash-ismus und funktionier nicht auf jeder Shell/System.

    Cool! Again what learned.

  • Die for-Schleife is unnötig.

    ja, das hatte ich auch schon erfreulicherweise festgestellt - siehe auch Posting Bitte melde dich an, um diesen Link zu sehen. ;)

    Q: Warum steht das nicht in Shell-Bücher?
    A: es ist bash-isch oder wie of geschrieben ien Bash-ismus und funktionier nicht auf jeder Shell/System.


    Eigentlich behandelt mein Buch alle gängigen shells wie sh, bash, ksh, csh, tcsh und geht bei diversen Sachen immer wieder auf deren Unterschiede ein. Leider konnte ich das {a..z} o.ä. noch nicht finden.

    Fazit: immer aus mindeststens 2 Büchern lernen - das hab ich daraus gelernt ^^

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.