如何使bash函数运行双向rsync

时间:2018-01-29 17:08:01

标签: bash rsync

我在服务器上有ssh连接的本地文件夹和远程文件夹。我没有管理员权限,因此安装新软件包无法使用unison。我必须经常同步这两个文件夹,它们也很大。从here我知道要在双方同步,我必须两次rsync。一次从服务器到本地:

rsync -Przzuve ssh user@server:/path/to/remote/folder/* /path/to/local/folder

然后反过来,从本地到服务器

rsync -Przzuve ssh /path/to/local/folder/* user@server:/path/to/remote/folder

我想拥有的是一个命令,如:

rsyncb /path/to/local/folder user@server:/path/to/remote/folder

只需在一个命令中同步两个方向的两个文件夹的内容,而不必担心第一个路径末尾的 - *选项和/ * ...

我发现this关于使用给定参数创建bash函数但我不明白如何实现我想要的。如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

只需定义一个函数。

rsyncb() {
    rsync -Przzuve ssh "$1"/* "$2"
    rsync -Przzuve ssh "$2"/* "$1"
}

然后像这样使用它:
rsyncb user@server:/path/to/remote/dir /path/to/local/dir