4

現在、次のコマンドを使用してサイトのコンテンツをアップロードしています。

scp -r web/* user@site.com:site.com/

これは、.htaccessファイルが送信されないことを除いてうまく機能します。おそらく、これは隠されているためです。

ファイルを明示的に送信するために2行目を追加しようとしました。

scp -r web/.htaccess user@site.com:site.com/.htaccess

これは、パスワードを2回入力する必要があることを除いて、うまく機能します。

パスワードのエントリを1つまたは0つだけにして、これをデプロイする方法について何か考えはありますか?

4

3 に答える 3

8

2つのコマンドを組み合わせるだけです。

scp -r web/* web/.htaccess user@site.com:site.com/

パスワードのエントリを0にする場合は、ssh/scpの公開鍵認証を設定できます。

于 2008-08-29T01:47:21.317 に答える
4

背景情報:*ワイルドカードは、いわゆる「ドット ファイル」(つまり、名前がドットで始まるファイル) と一致しません。

一部のシェルでは、オプションを設定してドットファイルに一致させることができますが、これを行うには多くの手間がかかります: 現在は(現在のディレクトリ) と(親ディレクトリ) に*も一致しますが、これは通常は一致しません。意図されたものであり、非常に驚​​くべきことです! (親ディレクトリを削除することは、おそらく 1 日を始めるのに最適な方法ではありません ...)...rm -rf *

于 2008-08-29T02:00:22.410 に答える
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

于 2008-08-29T01:58:20.747 に答える