Estoy tratando de copiar todos los archivos y carpetas de un directorio a otro, pero excluyo ciertos archivos. Específicamente, quiero excluir archivos y carpetas de subversión. Sin embargo, me gustaría una solución general pero concisa.
Me imagino que encontraré la necesidad de excluir varios tipos de archivos en el futuro cercano. Por ejemplo, podría querer excluir .svn, * .bak y * .prj.
Esto es lo que he reunido, pero no me funciona. La primera parte, buscar trabajos, pero estoy haciendo algo mal con xargs y cp . Intenté cp con y sin el -R
. Además, estoy usando OS X y parece tener una versión menos destacada de xargs que los sistemas Linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
bandera, estoy bastante seguro. Quite eso y que debe estar bien (aunque es posible que desee añadir -mindepth 1
a ignorar la carpeta directorio principal, que no desea copiar, supongo)
find
comando usa correctamente-prune
para excluir elementos .svn, entonces pasa la-R
bandera a lacp
que le dice que ese comando sea recursivo. Cuando lo hace, pierde la granularidad que tenía en elfind
comando. Voy a jugar con esto por un minuto, pero creo que la respuesta es no usarlo-R
en elcp
comando.