Sim, você pode usar --exclude-file
várias vezes para especificar arquivos de exclusão diferentes. E isso pode ser útil se você quiser separar as diferentes classes de arquivos em arquivos de exclusão separados.
Esta é a estrutura de diretórios e eu tenho que remover o executável e os arquivos temporários gerados.
root-dir/
├── dir1
│ ├── dir1-1
│ │ ├── a.out
│ │ └── file1.txt
│ └── dir1-2
│ ├── a.out
│ └── file2.txt
├── dir2
│ └── dir2-1
│ ├── a.out
│ ├── file3.txt
│ └── README.md
└── dir3
├── dir3-1
│ └── a.exe
├── dir3-2
│ ├── a.out
│ ├── program1.cpp
│ ├── program1.ii
│ ├── program1.o
│ └── program1.s
└── dir3-3
├── a.out
├── program2.cpp
├── program2.ii
├── program2.o
└── program2.s
Use o comando
rsync --exclude-from exclude-exec --exclude-from exclude-temps -av SRC/ DEST/
exclude-exec contém
*.out
*.exe
exclude-temps contém
*.ii
*.o
*.s
A estrutura de diretório após a operação,
root-dir/
├── dir1
│ ├── dir1-1
│ │ └── file1.txt
│ └── dir1-2
│ └── file2.txt
├── dir2
│ └── dir2-1
│ ├── file3.txt
│ └── README.md
└── dir3
├── dir3-1
├── dir3-2
│ └── program1.cpp
└── dir3-3
└── program2.cpp