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ć?

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}

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)


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.