代码之家  ›  专栏  ›  技术社区  ›  Frank Krueger

如何使用“scp”部署网站的.htaccess文件?

  •  2
  • Frank Krueger  · 技术社区  · 16 年前

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

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

    除了没有发送.htaccess文件外,这个方法非常有效。大概是因为它是隐藏的。

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

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

    这很好,除非现在我必须输入两次密码。

    对于如何只使用1或0条密码进行部署有什么想法吗?

    3 回复  |  直到 8 年前
        1
  •  6
  •   dF.    16 年前

    只需将这两个命令组合在一起:

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

    如果您需要0个密码条目,可以设置 public key authentication 对于SSH/SCP。

        2
  •  4
  •   Jörg W Mittag    16 年前

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

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

        3
  •  3
  •   mtb deleteMe    8 年前

    注意一点-不要试图匹配点文件(如 .htaccess .* -这也不方便匹配 .. ,并将导致将路径上的所有文件复制到根目录。我做过一次 rm ,不可少!我不得不重建服务器因为我搞砸了 /var .

    @ JWMITAGT:

    我刚在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 .