Como passar para tar.gz um arquivo após renomear usando xargs?

2

Estou tentando renomear os arquivos de log e torná-los como 'tar.gz', terminei com o comando abaixo, mas não obtém o nome do arquivo renomeado de STDIN (saída do comando mv) e causa a tar comando para criar arquivos vazios,

find -type f -name "logs*" -exec bash -c ' \
     mv "$0" "$0_$(date -r "$0" +"%Y%m%d%H%M%S")"| \
     xargs tar -czf "$0_$(date -r "$0" +"%Y%m%d%H%M%S")".tar.gz --null -T - 
' "{}" \;

Como posso tar o arquivo renomeado com revisão do comando acima ou há outras maneiras (no bash shell)? obrigado

    
por devWeek 14.10.2016 / 12:43

1 resposta

2

Se você quiser criar um arquivo .tar.gz separado para cada um dos arquivos de log que encontrar coleções, não será necessário usar xargs . Você pode salvar o nome anexado com data de cada arquivo em uma variável (f neste caso) e reutilizar o novo nome no comando tar . Isso também deixará seus arquivos renomeados no lugar.

find . -type f -iname "log*" -exec bash -c ' \
    f="${0}_$(date -r "$0" +"%Y%m%d%H%M%S")"; \
    mv "$0" "$f" && tar -czf "${f}.tar.gz" "$f" \
' "{}" \;
    
por Arronical 14.10.2016 / 13:16