Como eu crio diretórios com números de índice?

0

Eu quero criar diretórios hal-01 para hal-30 no Linux. Existe um único comando que pode fazer isso?

    
por user2115931 27.02.2013 / 16:16

4 respostas

2

Você pode usar o seguinte comando: mkdir hal-{01..30} (pelo menos se você usar um shell que suporte essa forma de expansões de string (bash)).

Para explicar o que acontece:

$ echo {01..30}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Como você pode ver, o {01..30} foi expandido para vários argumentos. Isso funciona se suas chaves também ocorrerem em uma string:

$ echo hal-{01..30}
hal-01 hal-02 hal-03 hal-04 hal-05 hal-06 hal-07 hal-08 hal-09 hal-10 hal-11 hal-12 hal-13 hal-14 hal-15 hal-16 hal-17 hal-18 hal-19 hal-20 hal-21 hal-22 hal-23 hal-24 hal-25 hal-26 hal-27 hal-28 hal-29 hal-30

Agora mkdir aceita vários argumentos e criará um diretório para cada um. Assim, você obtém o que solicitou se usar mkdir em vez de echo .

    
por 27.02.2013 / 16:18
2

Use a expansão de contraventamento, como por exemplo: mkdir hal-{01..30}

    
por 27.02.2013 / 16:18
0

mkdir ~ / example / folder {1..30} se você quiser 30

    
por 27.02.2013 / 16:19
0

Você também pode usar seq(1) para isso, por exemplo:

mkdir $(seq --format="~/example/folder/HAL-%02.0f" 1 30)

Pode fazer outras coisas, como diferentes etapas e assim por diante. Por algum motivo indecifrável, ele calcula com floats (!?), O formato printf(3) -like deve ser ajustado de acordo. Isso funciona mesmo com shells simples que não fazem expansões funky.

    
por 01.03.2013 / 03:45

Tags