Lê o alvo do symlink e incrementa o alvo por um

3

Eu tenho uma estrutura de pastas parecida com esta

/some/folder/1
/some/folder/2
...

e um link simbólico current com links para uma das pastas. É possível e quando ler o destino do link, incrementar o nome da última pasta e criar uma pasta com esse número, por ex. leia o link que aponta para /some/folder/2 , então eu sei que o último número é 2 e incremente esse número para criar uma nova pasta /some/folder/3 para armazenar novos arquivos?

Eu já tenho um script que lê o alvo do link, mas não tenho idéia de como obter a última parte do caminho (o número) e incrementá-lo em um.

    
por Lamp 21.08.2014 / 15:45

1 resposta

4

use readlink para obter o destino de um link simbólico:

target=$(readlink $1)

use o poder do shell para remover tudo antes do último / ;

id=${target##*/}

ou remova tudo após o último / :

base=${target%/*}

use o poder do shell para fazer aritmética simples

newid=$((id+1))

finalmente cole-os juntos:

newtarget=${base}/${newid}

ou, em uma linha:

newtarget=${target%/*}/$((${target##*/}+1))
    
por 21.08.2014 / 15:53