Um problema ao renomear logs com MV

1

Eu tenho arquivos de log criados como log.2015-09-28T13-36-29 e estou tentando alterar os nomes dos arquivos de log para melhor atender ao logrotate.

O seguinte comando funciona para exibir o arquivo que eu preciso renomear:

ls log.$(date -d 'today' +'%Y-%m-%d')*

Mas esse comando me dá erros dizendo que não é possível encontrar os arquivos.

mv "log.$(date -d 'today' +'%Y-%m-%d')*" "(date -d 'today' +'%Y-%m-%d').log"

Alguma idéia de como consertar este comando? Ou uma maneira melhor de fazer isso?

    
por Dustin Perkins 06.10.2015 / 19:50

1 resposta

2

O problema que você está enfrentando está relacionado à sintaxe do seu comando mv . Se você esquecer por um minuto que você está tentando trabalhar com arquivos de data, seu comando é equivalente a:

mv file.a file.b file.c file.d

Neste caso, não está claro qual arquivo deve ser renomeado.

Uma solução para o problema pode ser usar um comando para iterar cada arquivo e renomeá-lo - talvez algo como:

for each in log.$(date -d 'today' +'%Y-%m-%d')*; do mv $each $(date -d
'today' +'%Y-%m-%d').log;done
    
por 06.10.2015 / 20:02