Estou procurando uma maneira concisa de verificar se um arquivo foi copiado usando cp -u
.
Eu tenho um pequeno script de shell que atualiza vários arquivos. No momento o script echo
envia uma pequena mensagem para cada arquivo que é copiado.
Agora quero alterar o script de forma que ele echo
só seja executado quando o arquivo for realmente atualizado. Verifiquei se cp -u
retornou um código de erro se não copiou o arquivo, mas não é o caso.
Existe uma maneira melhor do que comparar manualmente os carimbos de data/hora dos arquivos?
Responder1
if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi
Atualizar
Combine "->" na saída detalhada do cp. Isso só ocorre se puder ser copiado com sucesso e se os nomes dos arquivos não contiverem "->".
if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi