Como determinar se cp -u realmente copiou o arquivo?

Como determinar se cp -u realmente copiou o arquivo?

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 echoenvia uma pequena mensagem para cada arquivo que é copiado.

Agora quero alterar o script de forma que ele echosó seja executado quando o arquivo for realmente atualizado. Verifiquei se cp -uretornou 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

informação relacionada