Como criar pastas 00-99 com um único comando no Ubuntu?

16

Eu preciso criar pastas começando de 00 a 99 (00, 01, 02, 03, etc ....) em várias centenas de lugares. Existe um comando de linha única que me permitirá fazer isso?

jjeaton
fonte

Respostas:

45

A resposta de Mulaz está correta, mas muitas pessoas dizem que seqé mau, porque a maioria das conchas permite que você faça o seguinte

mkdir {00..99}

No entanto, em algumas versões mais antigas do bash, o 0-9preenchimento não é preenchido, então você teria que fazer

mkdir 0{0..9} {10..99}
Patrick
fonte
9
+1 deve ser a resposta aceita IMHO. Não é apenas este Bash idiomático, ele não requer o uso de um programa externo (que é seq).
Trollhorn
1
É assim que deve ser feito.
Phoxis
7
O seguinte também funciona:> mkdir {0..9} {0..9}
Orieg 12/12
17

Isso vai dar?

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

faz um loop para os números 0-99 e "-w" define a mesma largura (0 preenchimento para 0-9)

mulaz
fonte
7
seq -w 0 99 | xargs mkdirtambém faria o trabalho.
Jay
11
Você pode abandonar o loop e apenas fazer mkdir $(seq -w 0 99). Ou use backticks em vez de $(), mas não posso colocar backticks por causa da sintaxe de falha no servidor.
Patrick
@ Patrick: Sim, você pode: mkdir `seq -w 0 99` (Eu não pude evitar o espaço extra). Veja aqui , mas parece que o truque de incluir espaços nos delimitadores não funciona aqui.
Keith Thompson
2
Os backticks do @Patrick são ruins: mywiki.wooledge.org/BashFAQ/082
Andrew
@ Andrew sim, eu estou ciente disso, mas eu prefiro ficar com o estilo de codificação de tudo o que estou respondendo.
Patrick
2

Eu sei que isso é antigo, mas minha recomendação seria:

para eu dentro seq -f %02g 0 99; mkdir $ i; feito

o -f% 02g garante a permanência de pelo menos dois caracteres, como 00 ou 99, e ainda permitirá 3 números de caracteres além de 99, portanto, se você tiver 100, ele não se tornará 001. Serão 00-99 100 em vez de 001- 100 como o -w faz.

Nate W
fonte