标签:帮助 目录 自动 -- 答案 文档 同步 rsync -av files
需求: 同步某个目录下所有的图片(*.jpg),该目录下有很多其他的文件,但只想同步*.jpg的文件。
rsync 有一个--exclude 可以排除指定文件,还有个--include选项的作用正好和--exclude相反。
那直接使用--include="*.jpg"是否可以呢?
rsync -av --include="*.jpg" /src/ /des/
实验证明,这样是不对的。
而正确的答案是
rsync -av --include="*.jpg" --exclude=* /src/ /des/
这样就会在 1.1.1.1:/data/目录下创建 1/2/3/这样的级联目录,类似mkdir -prsync -aR /data/1/2/3/1.txt 1.1.1.1:/data/
rsync 有个选项那就是-R 会帮助我们自动创建级联目录。所以,上边的命令应该改成这样
这样,同样也达不到我们想要的效果,这样虽然不再报错,但是这样只是把1.txt放到了 1.1.1.1:/data/目录下。
rsync -a /data/1/2/3/1.txt 1.1.1.1:/data/
这样会报错的。如果改一改上边的命令
rsync -a /data/1/2/3/1.txt 1.1.1.1:/data/1/2/3/1.txt
默认情况下,使用rsync的时候,不能自动创建级联目录。比如
有时候,有这样的需求,就是根据一个文档中的文件列表来同步文件。举一个例子,1.txt 是文件列表,内容为:
cat 1.txt
/data/a/a.txt
/data/b.txt
/data/c/b/c.txt
那么同步的命令应该是
rsync -av --files-from=1.txt / ip::module/
需要注意的是, 1.txt 中如果写全局路径,那么source目录需要写/
标签:帮助 目录 自动 -- 答案 文档 同步 rsync -av files
原文地址:https://www.cnblogs.com/smilezgy/p/9545498.html