Rsync es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y carpetas entre dos ubicaciones a través de un shell remoto.
Con Rsync puede duplicar datos, crear copias de seguridad incrementales y copiar archivos entre sistemas. Al copiar datos, es posible que desee excluir uno o más archivos o directorios según su nombre o ubicación.
En este tutorial, le mostraremos cómo excluir archivos y directorios con rsync.
Antes de comenzar #
Debe tener un conocimiento básico de cómo funciona rsync.
 En los ejemplos a continuación, usaremos rsync con -a , opción. Esto le dice a rsync que sincronice directorios de forma recursiva, transfiera dispositivos especiales y de bloqueo y conserve enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.
Al excluir archivos o directorios, debe usar sus rutas relativas al directorio de origen.
Hay dos opciones para especificar los archivos y directorios que desea excluir:
- Desde una línea de comandos , utilizando 
--excludeopción. - Desde un archivo , usando el 
--exclude-fromopción. 
Excluir un número de archivo específico
 Para excluir un archivo específico, pase la ruta relativa al archivo a --exclude opción.
 En el siguiente ejemplo, el archivo src_directory/file.txt no será transferido:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/ Excluir un número de directorio específico
 Excluir un directorio específico es lo mismo que excluir un archivo, simplemente pase la ruta relativa al directorio a --exclude opción como se muestra a continuación:
rsync -a --exclude 'dir1' src_directory/ dst_directory/ 
 Si desea excluir el contenido del directorio pero no el directorio en sí, use dir1/* en lugar de dir1 :
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/ Excluir varios archivos o directorios #
 Para excluir varios archivos o directorios, simplemente especifique varios --exclude opciones:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/ 
 Si prefiere usar un único --exclude opción puede enumerar los archivos y directorios que desea excluir entre llaves {} separados por una coma como se muestra a continuación:
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/ 
 Si el número de archivos y/o directorios que desea excluir es grande, en lugar de usar múltiples --exclude opciones puede especificar los archivos y directorios que desea excluir en un archivo y pasar el archivo a --exclude-from opción.
El siguiente comando hace exactamente lo mismo que el anterior:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ excluir-archivo.txtfile1.txt
dir1/*
dir2
 Excluir varios archivos o directorios según un patrón #
Con rsync también puede excluir archivos y directorios según un patrón que coincida con el nombre del archivo o directorio.
 Por ejemplo, para excluir todo .jpg archivos que ejecutaría:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/ 
 Es un poco más complicado excluir todos los demás archivos y directorios, excepto aquellos que coinciden con un determinado patrón. Supongamos que desea excluir todos los demás archivos y directorios excepto los archivos que terminan en .jpg .
Una opción es usar el siguiente comando:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/ Cuando se utilizan varias opciones de inclusión/exclusión, se aplica la primera regla de coincidencia.
--include='*.jpg'- Primero estamos incluyendo todos los.jpgarchivos.--include='*/'- Entonces estamos incluyendo todos los directorios dentro desrc_directorydirectorio. Sin este rsync solo copiará*.jpgarchivos en el directorio de nivel superior.-m- Elimina los directorios vacíos.
 Otra opción sería canalizar la salida de find comando para rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/ -printf %P\\0\\n- eliminará elsrc_directory/desde la ruta del archivo.--files-from=-- significa incluir solo los archivos de la entrada estándar (archivos pasados desde el comando de búsqueda).
Conclusión #
En este tutorial, aprendió cómo excluir archivos y directorios al transferir datos con Rsync. Hay mucho más que aprender sobre Rsync en la página del Manual del usuario de Rsync.