Wie erstelle ich Ordner 00-99 mit einem einzigen Befehl in Ubuntu?


16

Ich muss Ordner zwischen 00 und 99 (00, 01, 02, 03 usw.) an mehreren hundert Stellen erstellen . Gibt es einen einzeiligen Befehl, mit dem ich das machen kann?

Antworten:


45

Die Antwort von mulaz ist richtig, aber viele Leute sagen, dass seqes böse ist, weil die meisten Muscheln Sie das Folgende tun lassen

mkdir {00..99}

In einigen älteren Versionen von bash ist es jedoch 0-9nicht gepolstert, sodass Sie dies tun müssten

mkdir 0{0..9} {10..99}

9
+1 Sollte die akzeptierte Antwort IMHO sein. Dies ist nicht nur eine idiomatische Bash, es erfordert auch kein externes Programm (welches die Folge ist).
Trollhorn

1
So sollte es gemacht werden.
Phoxis

7
Das Folgende funktioniert auch:> mkdir {0..9} {0..9}
Orieg

17

Wird das gehen?

for i in `seq -w 0 99`; do mkdir $i; done

Führt eine Schleife für die Nummern 0-99 aus und "-w" setzt die gleiche Breite (0-Auffüllung für 0-9)


7
seq -w 0 99 | xargs mkdirwürde auch den Job machen.
Jay

11
Sie können die Schleife loswerden und einfach tun mkdir $(seq -w 0 99). Oder verwenden Sie Backticks anstelle von $(), aber ich kann wegen der Serverfehlersyntax keine Backticks eingeben.
Patrick

@Patrick: Ja, Sie können: mkdir `seq -w 0 99` (Ich konnte den zusätzlichen Platz nicht vermeiden). Sehen Sie hier , aber es sieht so aus, als würde der Trick, Leerzeichen in die Begrenzer einzufügen, hier nicht funktionieren.
Keith Thompson

2
@ Patrick Backticks sind schlecht: mywiki.wooledge.org/BashFAQ/082
Andrew

@ Andrew Ja, mir ist das bewusst, aber ich ziehe es vor, bei dem Codierungsstil zu bleiben, auf den ich antworte.
Patrick

2

Ich weiß, dass dies alt ist, aber meine Empfehlung wäre:

denn ich in seq -f %02g 0 99; do mkdir $ i; erledigt

Mit -f% 02g wird sichergestellt, dass mindestens zwei Zeichen (z. B. 00 oder 99) verbleiben, und es können weiterhin 3 Zeichen nach 99 eingegeben werden. Wenn Sie also 100 haben, wird dies nicht zu 001. Es wird 00-99 100 anstelle von 001-. 100 wie das -w.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.