我目前正在使用以下命令上传我的网站内容:
scp -r web/* user@site.com:site.com/
除了不发送 .htaccess 文件之外,这很好用。据推测,这是因为它是隐藏的。
我尝试添加第二行来明确发送文件:
scp -r web/.htaccess user@site.com:site.com/.htaccess
这很好用,但现在我必须输入两次密码。
关于如何仅使用 1 或 0 个密码条目进行此部署的任何想法?
我目前正在使用以下命令上传我的网站内容:
scp -r web/* user@site.com:site.com/
除了不发送 .htaccess 文件之外,这很好用。据推测,这是因为它是隐藏的。
我尝试添加第二行来明确发送文件:
scp -r web/.htaccess user@site.com:site.com/.htaccess
这很好用,但现在我必须输入两次密码。
关于如何仅使用 1 或 0 个密码条目进行此部署的任何想法?
一些背景信息:*
通配符不匹配所谓的“点文件”(即名称以点开头的文件)。
一些 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
。