Mkdir adicionar número iteração

0

Digamos que eu tenha a pasta1 e eu quisesse criar automaticamente uma pasta2. Agora vamos dizer que eu corri isso de novo e eu queria agora fazer folder3, pasta 4 e assim por diante para cada vez que eu corri isso. Qual seria a melhor maneira de criar o nome do diretório + 1 do maior número e, em seguida, copiá-lo automaticamente?

Motivação: Eu tenho um programa que alimenta vários tipos de entrada em que produz vários arquivos de saída. O programa substitui os arquivos de saída se você executá-lo duas vezes ou mais. Eu estou projetando um loop que, em vez disso, cp todas as entradas em uma pasta, executar o programa, gravar a saída para essa pasta, cds de volta para fora e repete isso em uma nova pasta.

    
por user507974 04.09.2015 / 20:55

1 resposta

1

Aqui está uma função bash:

mknextdir () {
    stem=${1:-}
    lnum=$(echo "$stem"* | xargs -n1 | cut -c $(( ${#stem} + 1))- | sort -n | tail -n1)
    nn="${stem}$(( $lnum + 1))"
    mkdir $nn
    echo $nn
}

Chame como mknextdir folder , para o seu caso de exemplo. Ele ecoa o nome do diretório que criou, então, para movê-lo automaticamente, você poderia fazer cd $(mknextdir folder) ou armazena a saída em uma variável para script.

    
por 04.09.2015 / 22:38