Remove o primeiro caractere em um nome de pasta [duplicado]

1

Como posso remover a primeira letra de um nome de diretório? por exemplo: Pasta é nomeada como "AFolder_01" como posso renomeá-lo para "Folder_01"

O motivo da minha pergunta é que tenho uma lista de pastas e quero renomear todas essas pastas de uma vez removendo a primeira letra. Eu encontrei este código online para remover o (s) último (s) caractere (s):

  while IFS= read -r dir; do [[ -d $dir ]] && mv -i "$dir" "${dir%?}"; done <all.txt
  1. Como esse código pode ser revisado para remover a primeira letra? Por exemplo, no meu exemplo, renomeie "AFolder_01" para "Folder_01"
  2. Como esse código pode ser revisado para adicionar o charter de volta no início do nome da pasta: ou seja, no meu exemplo renomear "Folder_01" para "AFolder_01"
por Timothy Martin 26.01.2017 / 19:48

1 resposta

4

Depois de ter o nome do seu diretório em uma variável (por exemplo, dir ), você pode:

mv "$dir" "${dir:1}"

Isso tira o primeiro caractere da variável. Vou deixar a sanidade de verificar que o novo diretório ainda não existe até você.

Para adicionar algo ao início (por exemplo, a letra A ):

mv "$dir" "A$dir"
    
por 26.01.2017 / 19:57