Perdóneme, probablemente no estoy usando los términos correctos para describir el problema y no entiendo bien el uso más básico de un par de comandos comunes.
Tengo una declaración de búsqueda simple que localiza los archivos que quiero copiar. Quiero agregar -exec cp {} y hacer que cp copie el archivo del directorio de origen a un nuevo directorio base, pero incluya la ruta completa. Por ejemplo:
find . -name *.txt
localiza/user/username/projects/source.txt
cp {} [now what?]
copia el archivo a/user/newuser/projects/source.txt
Respuesta1
rsync -rlpv --files-from=<(find ...) /user/username/projects /user/newuser
Respuesta2
Si puedes estar seguro de que todos los subdirectorios existen, entonces esta es una opción divertida:
cd /user/username/
find . -name \*.gz | sed 's/\.\(.*\)/.\1 ..\/newuser\1/' | xargs -n2 cp