Search code examples
linuxbashsyntaxterminalrsync

BASH Rsync exclude not working. Possible error in syntax?


I am trying to run the following line of code from the terminal and the rysnc works properly, however, as you can see by the relevant console output, it is not excluding the files I am wanting it to. Is there something that I am doing wrong in my syntax?

Input Command:

rsync -va --exclude="Frisnuk/((plugins/dynmap.*)|(orebfuscator_cache.*))" --force Frisnuk .backups/07.25.2013-13:05/MinecraftServer/Frisnuk

Console Output:

...
Frisnuk/orebfuscator_cache/
Frisnuk/orebfuscator_cache/Frisnuk/
Frisnuk/orebfuscator_cache/Frisnuk/data/
Frisnuk/orebfuscator_cache/Frisnuk/data/region/
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-1.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-10.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-2.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-3.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-4.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-5.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-6.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-7.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-8.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.-9.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.0.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.1.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.2.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.3.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.4.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-1.5.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-1.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-10.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-2.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-3.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-4.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-5.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-6.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-7.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.-9.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.0.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.1.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.2.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.3.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.4.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-2.5.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-1.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-10.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-2.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-3.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-4.mcr
Frisnuk/orebfuscator_cache/Frisnuk/data/region/r.-3.-5.mcr
...

Edit: As suggested by rsync --exclude not excluding specific files, I made the exclusion relative to the source, however, that also failed:

rsync -va --exclude="((plugins/dynmap.*)|(orebfuscator_cache.*))" --force Frisnuk .backups/07.27.2013-02:30/MinecraftServer/Frisnuk

Solution

  • A rsync filter rule is not a not regexp, try this:

    rsync -va --exclude='Frisnuk/plugins/dynmap/**' --exclude='Frisnuk/orebfuscator_cache/**'  ...