我目前正在使用以下命令上传我的网站内容:
scp -r web/* user@site.com:site.com/
除非没有发送.htaccess文件,否则这很有效。据推测,这是因为它是隐藏的。
我尝试过添加第二行来明确发送文件:
scp -r web/.htaccess user@site.com:site.com/.htaccess
除非现在我必须输入两次密码,否则效果很好。
关于如何使用我的密码的1或0个条目进行部署的任何想法?
答案 0 :(得分:6)
只需合并两个命令:
scp -r web/* web/.htaccess user@site.com:site.com/
如果您想要输入0个密码,可以为ssh / scp设置public key authentication。
答案 1 :(得分:4)
一些背景信息:*
通配符与所谓的“点文件”(即名称以点开头的文件)不匹配。
有些shell允许你设置一个选项,这样将匹配点文件,但这样做会带来很多痛苦:现在*
也会匹配{ {1}}(当前目录)和.
(父目录),这通常不是预期的,可能会非常令人惊讶! (..
删除父目录可能不是开始一天的最佳方式......)
答案 2 :(得分:3)
请注意 - 不要尝试将带有.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
。