2008-08-29 23 views
2

我目前使用下面的命令来上传我的网站内容:如何使用`scp`部署网站的`.htaccess`文件?

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

这只是.htaccess文件不会被发送的伟大工程。据推测,这是因为它是隐藏的。

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

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

除了现在我不得不两次输入密码这个伟大的工程。

有关如何使用我的密码只有1或0条目进行部署的任何想法?

+1

使用rsync而不是scp,这种方式只有新的文件将被复制,节省时间:) – 2009-12-08 16:28:04

回答

3

一个忠告 - 不要试图与.*匹配点文件(如.htaccess) - 此不便也匹配..,并会导致复制路径的根目录上的所有文件。我这样做了一次(与rm,没有更少!),我不得不重建服务器,因为我搞砸了/var

@jwmittag:

我只是做了Ubuntu和.*匹配测试,当我使用cp。这里有一个例子:

[email protected]:/# mkdir a 
[email protected]:/# mkdir b 
[email protected]:/# mkdir a/c 
[email protected]:/# touch a/d 
[email protected]:/# touch a/c/e 
[email protected]:/# cp -r a/c/.* b 
cp: will not create hard link `b/c' to directory `b/.' 
[email protected]:/# ls b 
d e 

如果.*不匹配..,然后d不应该在b

+0

我在说' *'通配符本身。它不会匹配以点开头的文件。 '。*'将匹配以点开头的所有文件,包括特殊目录'。'。和'..'。 – 2008-09-21 04:14:54

4

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

一些炮弹允许您设置的选项,以便它匹配点文件,但是,这样做是要求了很多苦:现在*也将匹配.(当前目录)和..(父目录),这通常不是打算的,并且可能是相当令人惊讶的! (rm -rf *删除父目录可能不是开始一天的最佳方式...)