先开个头,注意/
的使用
假设有 my_src_dir/a
- 把
my_src_dir
复制到my_dst_dir
,结果:my_dst_dir/my_src_dir/a
rsync -a my_src_dir my_dst_dir
- 把
my_src_dir
下的内容复制到my_dst_dir
,结果:my_dst_dir/a
rsync -a my_src_dir/ my_dst_dir
my_dst_dir和my_dst_dir/是没区别的
然后,复制的时候想排除某些文件,比如???.txt
rsync -a --exclude='???.txt' my_src_dir/ my_dst_dir
这样,会把全部的???.txt
都排除掉,例如a/???.txt
和b/???.txt
,如果只想排除掉a目录下的,那就把目录写多点
rsync -a --exclude='a/???.txt' my_src_dir/ my_dst_dir
如果目录是下面这样的
my_src_dir/a
my_src_dir/b
my_src_dir/b/a
应该怎么排除a
呢,--exclude='a'
,b/a
就没了,--exclude='my_src_dir/a'
,这样是不生效的,应该写成这样
--exclude='/a'
没错,就是加个/
,很多帖子说--exclude
要用相对目录,但是也没说怎么个相对,这样测一下就好理解了,相对于
my_src_dir
的相对,my_src_dir
是/
。