我目前正在使用以下命令上传我的网站内容:

scp -r web/* user@site.com:site.com/

除了不发送 .htaccess 文件之外,这非常有效。据推测,这是因为它被隐藏了。

我尝试添加第二行来明确发送文件:

scp -r web/.htaccess user@site.com:site.com/.htaccess

这非常有效,只是现在我必须输入密码两次。

关于如何仅使用 1 或 0 条密码进行此部署,您有什么想法吗?

有帮助吗?

解决方案

只需结合这两个命令:

scp -r web/* web/.htaccess user@site.com:site.com/

如果您想要 0 次密码,您可以设置 公钥认证 用于 ssh/scp。

其他提示

一些背景信息:这 * 通配符与所谓的“点文件”不匹配(即名称以点开头的文件)。

有些 shell 允许您设置一个选项,以便 将要 然而,匹配点文件,这样做会带来很多痛苦:现在 * 也将匹配 . (当前目录)和 .. (父目录),这通常不是预期的,并且可能非常令人惊讶!(rm -rf * 删除父目录可能不是开始新的一天的最佳方式......)

警告一句 - 不要尝试匹配点文件(例如 .htaccess) 和 .* - 这也不方便也匹配 .., ,并将导致将路径上的所有文件复制到根目录。我这样做过一次(与 rm, ,不少!)我不得不重建服务器,因为我弄乱了 /var.

@jwmittag:

我刚刚在 Ubuntu 上做了测试 .* 当我使用时匹配 cp. 。这是一个例子:

root@krash:/# mkdir a
root@krash:/# mkdir b
root@krash:/# mkdir a/c
root@krash:/# touch a/d
root@krash:/# touch a/c/e
root@krash:/# cp -r a/c/.* b
cp: will not create hard link `b/c' to directory `b/.'
root@krash:/# ls b
d  e

如果 .* 不匹配 .., , 然后 d 不应该在 b.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top