rsync:保护接收器上的非空目录

时间:2015-01-27 05:48:10

标签: rsync

我正在尝试rsync我的项目文件夹到服务器,其中包括各种源代码等。

rsync "$GOPATH/src/" -rm \
    -f '+ */' \
    -f '+ *.go' \
    -f '+ *.s' \
    -f '+ *.html' \
    -f '+ *.js' \
    -f '+ *.css' \
    -f '+ fonts/*' \
    -f 'P */' \
    -f '- *' \
    myserver:its/gopath/src/

我想删除多余的代码,并尽可能避免在接收器上创建目录。但是,通过提供-m--prune-empty-directories选项,我会收到有关接收器上的目录不为空的警告。

*deleting github.com/anacrolix/jitter/.git/hooks/
cannot delete non-empty directory: github.com/anacrolix/jitter/.git
cannot delete non-empty directory: bitbucket.org/anacrolix/go-utils/bin
*deleting bitbucket.org/anacrolix/go-utils/bin/

如何避免尝试删除这些目录,或通过rsync标志压制该警告?

1 个答案:

答案 0 :(得分:0)

解决方案是在 -m之前合并-f 'P */'-f '+ */' 。这样可以保护目录不被接收方删除,并且不会创建不必要的目录以容纳发送的文件。