¿Cómo determinar si cp -u realmente copió el archivo?

¿Cómo determinar si cp -u realmente copió el archivo?

Estoy buscando una forma concisa de comprobar si un archivo se copió usando cp -u.

Tengo un pequeño script de shell que actualiza una gran cantidad de archivos. Por el momento, el script echomuestra un pequeño mensaje para cada archivo que se copia.

Ahora quiero cambiar el script de tal manera que echosolo se ejecute cuando el archivo realmente se actualice. Verifiqué si cp -udevolvía un código de error si no copiaba el archivo, pero este no es el caso.

¿Existe una manera mejor que comparar manualmente las marcas de tiempo de los archivos?

Respuesta1

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

Actualizar

Haga coincidir "->" en la salida detallada de cp. Sólo ocurre si se pudo copiar correctamente y si los nombres de sus archivos no contienen "->".

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

información relacionada