gpt4 book ai didi

windows - Cygwin 命令可从命令行运行,但不能从脚本运行

转载 作者:可可西里 更新时间:2023-11-01 11:49:49 25 4
gpt4 key购买 nike

当我运行命令时:

rsync -avzhu --progress --exclude node_modules -e 'ssh -p 2022' /cygdrive/d/stuff_to_backup user@domain.com:/home2/user/backup

它在命令行中运行良好,但是当从 shell 脚本中执行完全相同的命令时,它会抛出此错误:

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1261) [Receiver=3.1.1]

知道为什么会发生这种情况吗?

最佳答案

花了大半个晚上试图解决这个问题,希望有一天这对其他人有所帮助。

我在解决这个问题时经常遇到的另一个错误是:

Unexpected remote arg: C:/Program Files (x86)/Git/cygdrive/c/Users

因为我注意到它只从 shell 脚本而不是命令行抛出错误,所以我能够确定它在没有 cygwin (cmd.exe) 的 Windows 上工作正常,它只是从它所在的 bash 运行有问题。

我遇到的大多数问题似乎都与引用相关,而且我对源的路径发生了一些奇怪的事情。我尝试使用像“/cygdrive/d/backup_dir”这样的路径,但它以某种方式被转换或解释为“C:/Program Files (x86)/Git/cygdrive/d/backup_dir”,这导致了错误。在我切换到没有“cygdrive”的相对路径后,这不是问题。我使用 cmder,所以可能是它造成的?

无论如何,最终的修复是省略“cygdrive”部分并使用相对路径。另外,不要对引号 '"' 过度热心。

关于windows - Cygwin 命令可从命令行运行,但不能从脚本运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32836331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com