如何使用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 *
删除父目录可能不是开始新的一天的最佳方法...)