rsync无法识别Windows路径

时间:2018-07-26 10:34:25

标签: docker docker-compose rsync boot2docker docker-toolbox

我试图通过在git bash中运行shell脚本在Windows 7(带有oracle VM的Docker工具箱)中构建docker容器,并且该脚本具有带有rsync的命令,如下所示:

rsync -a --exclude='*/node_modules' $PROJECT_PATH/project_name/src/ ./project_name/src

$PROJECT_PATH=/c/Users/yajnesh_rai/git

的值

这是我在控制台中看到的:

ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.2]

一些在线文档说要在没有驱动器名称的路径上使用正斜杠,而我尝试过这种方式

$PROJECT_PATH=\\Users\\yajnesh_rai\\git

这使rsync可以工作,但是无法复制文件,如下所示:

\Users\yajnesh_rai\git/project_name/src/folder_name/file_name: warning: directory does not exist.

我按照本文中提到的步骤在Windows上安装了rsync:https://blog.tiger-workshop.com/add-rsync-to-git-bash-for-windows/

感谢您为解决该问题提供的帮助!!预先感谢

1 个答案:

答案 0 :(得分:1)

Rsync在Windows中的绝对路径有问题

在Windows(64位Windows 10)上使用rsync时,我遇到了完全相同的问题。 rsync不喜欢绝对Windows路径,因为路径中有C:。因此,您应该:

C:替换为/cygdrive/c


用法示例

这是我在Windows上使用rsync的方式:

rsync -av --delete /cygdrive/c/Users/Kristof/src_folder/ /cygdrive/c/Users/Kristof/dst_folder/

Rsync将源文件夹C:/Users/Kristof/src_folder/同步到目标文件夹C:/Users/Kristof/dst_folder/

我使用以下标志:

  • -a--archive存档模式;等于-rlptgoD(没有-H-A-X

    • -r--recursive递归到目录
    • -l--links将符号链接复制为符号链接
    • -p--perms保留权限
    • -t--times保留修改时间
    • -g--group保存组
    • -o--owner保留所有者(仅限超级用户)
    • -D--devices --specials相同
      • --devices保留设备文件(仅超级用户)
      • --specials保留特殊文件
  • -v--verbose增加详细程度

  • --delete从目标目录中删除无关文件