Bash脚本rsync:rsync:link_stat(blah)失败:没有这样的文件或目录(2)

Nat*_*ord 21 bash scripting rsync

我正在尝试为我的本地(Mac OS X)机器编写一个简单的bash脚本,以便将文件从我的机器上的目录移动到远程机器上.这条线路失败了:

rsync --verbose  --progress --stats --compress --rsh=ssh \
      --recursive --times --perms --links --delete \
      --exclude "*bak" --exclude "*~" \
      /repository/* $DEV_SERVER:$REMOTE_DIR
Run Code Online (Sandbox Code Playgroud)

$DEV_SERVER并且$REMOTE_DIR之前已定义,我回应它们以验证它们是否准确.

我得到的错误是:

rsync: link_stat /Users/myusername/mycurrentdirectory failed: No such file or directory (2)
Run Code Online (Sandbox Code Playgroud)

这里要注意的是,它不使用已定义的目录(/repository位于计算机的根目录中),而是使用我的工作目录.是什么造成的?

小智 40

检查你的\字符在行尾之后没有空格,因为这会导致BASH无法正确解释换行符,从而给出上面的rsync错误


小智 5

从源位置删除'*',如果最后指定'/',rsync知道查看目录内部

像那样:

rsync --verbose  --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/ $DEV_SERVER:$REMOTE_DIR
Run Code Online (Sandbox Code Playgroud)