Criando diretórios com numeração seqüencial

0

Estou tentando criar uma seqüência de diretórios idênticos com nomes como 'file001' na sequência de 1 a 512. Estou executando o seguinte no shell:

for i in $(seq 001 512):
    do
        mkdir file$i
    done

Embora isso esteja criando todos os 512 diretórios, mas eles estão sendo rotulados como 'file1', 'file2' ... em vez de 'file001', 'file002' e assim por diante. Alguém pode sugerir alguma outra maneira de criar as pastas da maneira que eu preciso?

    
por AMC 12.09.2018 / 14:16

3 respostas

3

Tente isso:

mkdir file{001..512}
    
por 12.09.2018 / 14:23
1

Use qualquer um dos

for num in $(seq -w 001 512); do
    mkdir "file$num"
done

ou, com bash release 4.0 ou posterior (ou seja, não o padrão bash no macOS),

mkdir file{001..512}

Com o antigo bash if seq indisponível:

for num in {1..512}; do
    mkdir "file$( printf '%03d' "$num" )"
done
    
por 12.09.2018 / 14:24
0

Não há necessidade de Loop. Tente isto:

mkdir 'echo file{001..512}'

Como apontado nos comentários:

There is no need for command substitution and echo.

Portanto, Expansão de chaves é suficiente o suficiente para realizar a tarefa:

mkdir file{001..512}
    
por 12.09.2018 / 14:20