🚀

rsync

slash or not SRC/ vs SRC

$ tree dir1
dir1
├── bar
└── foo
    └── README

$ rsync -a dir1 dir_bk
$ tree dir_bk
dir_bk
└── dir1
    ├── bar
    └── foo
        └── README

$ rm -rf dir_bk && mkdir dir_bk
$ rsync -a dir1/ dir_bk
$ tree dir_bk
dir_bk
├── bar
└── foo
    └── README

Without a slash on the source directory means copy both the source directory, and the contents (recursively if specified) to the destination directory while adding a trailing slash means only copy the contents of the source directory, recursively if specified, to the destination.

There’s no difference on the DES. A slash on the destination directory appears to have no effect.

Other

            -v, --verbose           increase verbosity
            -a, --archive           archive mode; same as -rlptgoD (no -H)
            --delete                delete extraneous files from dest dirs
            --delete-before         receiver deletes before transfer (default)
            --delete-during         receiver deletes during xfer, not before
            --delete-after          receiver deletes after transfer, not befor
            -z, --compress          compress file data during the transfer

Common Usage

rsync -avz --delete-after build/ root@100.100.100.100:/usr/share/nginx/project

文章不是你的,当你读了十遍,那便是你的了。