Bash& CYGWIN:SCP没有看到文件

时间:2016-01-21 11:29:50

标签: bash cygwin

我有sh脚本将所有文件从某个文件夹复制到某个主机。

scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR

当我运行此脚本时,我得到以下结果:

Cygwin列出了我的SOURCE_FOLDER中的所有文件,并说没有找到这些文件! "没有这样的文件或目录"。这看起来很奇怪。我已检查该文件夹中的所有文件都具有 -rw-r - r - 权限。我试图设置更高的权限,但我不能保留它们,因为每次运行此脚本时都会重新生成文件,所以它们总是这样。

问题是:

1)哪些权限应该由scp传输文件?

2)我是否可以设置一个文件夹,以便始终使用一些预定义的权限创建内部的所有文件?

3)如果我对权限的猜测下降 - 还有什么可能是这种行为的原因?

1 个答案:

答案 0 :(得分:0)

似乎适合我,但我在Linux工作。不是100%熟悉cygwin。要回答您的权限问题:

1)文件应该是可写的。如果他们由root拥有,那么,更改组或使用sudo。我将解释下一步我将如何处理它。

2)是的,您将要使用umask来实现这一目标。我不会做远程root用户拷贝或777权限。您希望为该目录分配umask并为其分配某些组。 002 umask意味着该目录中组的所有人都具有读写访问权限。然后,接下来的两个命令将一个组添加到该目录,并将默认组添加到文件中。以下是语法示例:

umask 002 <dir>
chgrp <group> <dir>
chmod g+s <dir>    

3)语法...但我猜测权限。检查目标服务器和源服务器的权限。

我希望这有用!

umask参考: http://man7.org/linux/man-pages/man2/umask.2.html

喝彩!