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

时间:2020-03-05 18:44:47  来源:igfitidea点击:

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

scp -r web/* [email protected]:site.com/

除了不发送.htaccess文件之外,这非常有用。大概是因为它是隐藏的。

我尝试添加第二行以显式发送文件:

scp -r web/.htaccess [email protected]:site.com/.htaccess

效果很好,只不过现在我必须输入两次密码。

关于如何仅使用1或者0个密码条目进行部署的想法?

解决方案

回答

只需结合两个命令:

scp -r web/* web/.htaccess [email protected]:site.com/

如果我们希望密码输入0次,则可以为ssh / scp设置公共密钥身份验证。

回答

请注意,不要尝试将点缀文件(例如.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"中。

回答

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

一些shell允许我们设置一个选项,以便它可以匹配点文件,但是这样做会带来很多麻烦:现在*还将匹配.(当前目录)和..。 (父目录),这通常不是预期的,可能会非常令人惊讶! (rm -rf *删除父目录可能不是开始新的一天的最佳方法...)