Existe algum motivo para escapar de um ponto em uma expansão de nome de arquivo bash?

5

Estou trabalhando com um script bash que alguém escreveu e vejo a seguinte linha:

cp -v  ${LOG_DIR}/${APPLICATION}\.*.log ${ARCHIVED_LOG_DIR}

Os arquivos com os quais está trabalhando são todos nomeados como:

EXAMPLE.command1.log EXAMPLE.command2.log

Existe algum motivo para a barra invertida escapar do ponto, uma vez que um ponto não é tratado especialmente nas expansões do nome de arquivo? Quais são as implicações de se fazer isso sem a barra invertida?:

cp -v  ${LOG_DIR}/${APPLICATION}.*.log ${ARCHIVED_LOG_DIR}
    
por Dave Forgac 05.11.2012 / 19:32

2 respostas

3

Não há diferença. O ponto . não é um caractere de shell especial que precisa ser citado e a barra invertida será simplesmente removido durante a remoção de cotações . Isso é verdade na maioria dos shells, não apenas em bash .

    
por 05.11.2012 / 19:42
3

Não é uma resposta à sua pergunta que já foi respondida por @ jw013, mas observe que, embora os \ e {} sejam supérfluos aqui, há algumas coisas faltando. Como as variáveis devem ser citadas, e -- para marcar o final das opções está faltando.

cp -v -- "$LOG_DIR/$APPLICATION".*.log "$ARCHIVED_LOG_DIR"
    
por 05.11.2012 / 19:50

Tags