如何在cygwin bash脚本中访问共享驱动器?

时间:2011-06-26 11:21:38

标签: bash cygwin

#!/bin/bash
"mirror -R //thevault/Shared/Operations/Marketing/test --only-missing -e ;exit"

我正在使用lftp镜像共享驱动器上的文件夹。但它失败了“没有这样的文件或目录”这是什么写这个正确的方法?以及如何转义文件名中的空格。我已经尝试了一切。

我也试过/cygdrive/s/Operations/Marketing/test。这在我登录时运行并运行脚本。但是当我没有登录日志文件时运行任务时,我得到相同的“没有这样的文件”错误。

2 个答案:

答案 0 :(得分:4)

我认为这不是cygwin中对UNC路径名(即\\server\share)的一般支持,因此您必须依赖映射到网络驱动器然后使用/cygdrive/s。要解决在您未登录时无法正常工作的问题,您需要从脚本中调用Windows NET程序:

net use s: \\thevault\Shared password /user:myuser 

以明文形式使用密码可能会有一些安全隐患,因此另一种可能性是确保脚本从具有该服务器读取权限的用户帐户运行,然后您可以省略密码。

答案 1 :(得分:1)

这在注销时似乎完美无缺。

#!/bin/bash
lftp ftp://username:password@server.com -e "mirror -R //thevault/Share/folder/folder/folder\ with\ spaces/folder/folder --only-missing -e;exit"

这是我路上逃脱的空间。这不起作用的原因是因为当我重新输入错误拼写的路径时。 // thevault / shared< ~~不正确

#!/bin/bash
"mirror -R //thevault/Shared/folder/folder/test --only-missing -e ;exit"