Me gustaría copiar una lista de archivos en el formato test/path/to/file/filename.xyz a su ruta de producción correspondiente prod/path/to/file/filename.xyz. Si la ruta de prueba y la ruta de producción son las mismas excepto por la presencia de "prod" en lugar de "prueba", ¿puedo usar el siguiente comando? ¿Esto sobrescribirá el archivo de destino?
$ xargs -I % --arg-file=input.txt cp /test/% /prod/%
Respuesta1
Edite input.txt para que se lea así (tenga en cuenta el +
)
+ /path/to/file/filename.xyz
Entonces,
rsync -amv \
--include '*/' \
--include-from input.txt \
--exclude '*' \
test/ prod/
También puede ejecutarlo directamente editando el archivo sobre la marcha, por ejemplo:
rsync -amv \
--include '*/' \
--include-from <(sed 's/^/+ /' input.txt) \
--exclude '*' \
test/ prod/
Es posible que deba cambiar la sed
expresión para adaptarla a sus necesidades.