rsyncで親ディレクトリは除外してあるサブディレクトリ下だけコピーしたい
具体的にいうと、
mkdir workdir && cd workdir && {
mkdir -p to from/{dev/{disk,.static},usr}
touch from/{ichi,usr/nii} from/dev/{foo,disk/bar,.static/baz}
}なファイル/ディレクトリがあるときに、
rsync_exclude_me() {
cat <<EOEXCLUDE
/proc/*
/sys/*
...(snip)...
EOEXCLUDE
}
rsync_exclude_me | \
rsync -auv --delete --exclude-from=- from/ to/な感じで from と to を同期コピーしたいいんだけど、
- dev/* の下は dev/.static/* だけコピーしたい
というときにどうすればいいか。
さっき mkdir, touch したやつだと、
- ichi
- dev/.static/baz
- usr/nii
だけコピーしたい。
回答はこのあとすぐ! 続きが読みたい人はブコメで「おうっふおうっふ」!
rsync_exclude_me() {
cat <<EOEXCLUDE
/proc/*
/sys/*
+ /dev/.static/
+ /dev/.static/*
- /dev/*
...(snip)...
EOEXCLUDE
}ディレクトリ (/dev/.static/) と 配下のファイル (/dev/.static/*) を両方 include (+ ) しないといけないというのがキモですかね。
ほかにいい方法があったら教えてくださーい。