Rizal Muhammad Nur
Rizal Muhammad Nur

Reputation: 71

Rsync only particular files and directory that contain those files

Supposed I have directory structure like

src/
src/a/
src/a/1.ocf  
src/a/1.pdf  
src/a/1.txt
src/b/
src/b/2.ocf
src/b/2.pdf
src/b/2.xls
src/c/
src/c/3.doc
src/c/3.ocf
src/c/3.txt
src/d/

Then, I just want to synchronize only files with extension *.txt. So, I tried to use command like:

#rsync -avvH --include="*/" --include="*.txt" --exclude="*" src/ dst/
sending incremental file list
./
a/
a/1.txt
b/
c/
c/3.txt
d/

Unfortunately, this command not only synchronize *.txt file but also all directory. I don't want directory 'b' and 'd' be synchronized because it not contain file *.txt

Is there simple way to do that?

Upvotes: 4

Views: 255

Answers (1)

gniourf_gniourf
gniourf_gniourf

Reputation: 46823

The option you're looking for is -m to prune empty directories:

rsync -avvHm --include="*/" --include="*.txt" --exclude="*" src/ dst/

Upvotes: 3

Related Questions