Jak zrobić foldery 00-99 za pomocą jednego polecenia w Ubuntu?

17

Muszę tworzyć foldery od 00 do 99 (00, 01, 02, 03 itd.) W kilkuset miejscach. Czy jest jedno polecenie, które pozwoli mi to zrobić?

Jjeaton
źródło

Odpowiedzi:

46

Odpowiedź mulaz jest poprawna, ale wiele osób twierdzi, że seqjest zła, ponieważ większość pocisków pozwoli ci wykonać następujące czynności

mkdir {00..99}

Jednak w niektórych starszych wersjach bash 0-9nie są wyściełane, więc musiałbyś to zrobić

mkdir 0{0..9} {10..99}
Patrick
źródło
9
+1 Powinna być zaakceptowana odpowiedź IMHO. To idiomatyczne Bash nie tylko nie wymaga użycia zewnętrznego programu (którego sekwencją jest).
Trollhorn
1
Tak właśnie należy to zrobić.
phoxis
7
Działa także:> mkdir {0..9} {0..9}
Orieg,
17

Czy to da radę?

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

wykonuje pętlę dla liczb 0–99, a „-w” ustawia równą szerokość (0 wypełnienia dla 0–9)

mulaz
źródło
7
seq -w 0 99 | xargs mkdirrównież wykonałby zadanie.
Jay
11
Możesz porzucić pętlę i po prostu zrobić mkdir $(seq -w 0 99). Lub użyj backticków zamiast $(), ale nie mogę wstawiać backticków z powodu składni błędu serwera.
Patrick
@Patrick: Tak, możesz: mkdir `seq -w 0 99` (Nie mogłem uniknąć dodatkowej przestrzeni). Zobacz tutaj , ale wygląda na to, że sztuczka polegająca na umieszczaniu spacji w ogranicznikach nie działa tutaj.
Keith Thompson,
2
@ Picksick są złe: mywiki.wooledge.org/BashFAQ/082
Andrew
@Andrew tak, jestem tego świadomy, ale wolę pozostać przy stylu kodowania tego, na co odpowiadam.
Patrick
2

Wiem, że to stare, ale zalecam:

dla mnie w seq -f %02g 0 99; zrób mkdir $ i; gotowy

-f% 02g zapewnia, że ​​pozostanie co najmniej dwa znaki, takie jak 00 lub 99, i nadal będzie dopuszczać 3 liczby znaków powyżej 99, więc jeśli masz 100, nie będzie to 001. Będzie to 00-99 100 zamiast 001- 100 takich jak -w.

Nate W.
źródło