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 echo
muestra un pequeño mensaje para cada archivo que se copia.
Ahora quiero cambiar el script de tal manera que echo
solo se ejecute cuando el archivo realmente se actualice. Verifiqué si cp -u
devolví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