Como determinar se o cp -u realmente copiou o arquivo?

5

Como o título diz, estou procurando uma maneira concisa de verificar se um arquivo foi copiado usando cp -u .

Eu tenho um pequeno script de shell que atualiza um grande número de arquivos. No momento, o script echo es é uma pequena mensagem para cada arquivo que é copiado.

Agora, quero alterar o script de forma que o echo seja executado somente quando o arquivo for realmente atualizado. Eu verifiquei se cp -u retornou um código de erro se ele não copiou o arquivo, mas esse não é o caso.

Existe uma maneira melhor do que comparar manualmente os timestamps dos arquivos?

    
por Zeeker 09.10.2014 / 09:34

1 resposta

7
if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi

Atualizar

Corresponder "- >" na saída detalhada do cp. Isso só ocorre se ele puder ser copiado com sucesso e se seus nomes de arquivos não contiverem "- >".

if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi
    
por 09.10.2014 / 09:38

Tags