SSHとシェルを介して既存のファイルを上書きしてコンテンツ管理インストールを更新するにはどうすればよいですか?

SSHとシェルを介して既存のファイルを上書きしてコンテンツ管理インストールを更新するにはどうすればよいですか?

CentOS 5およびApache 2.2を実行しているWebサーバーにcms(modx)をインストールしました。今、新しいバージョンが出てきたので更新したいです。説明モードxウィキ既存のファイルを上書きすることをお勧めします。

.zipファイルをダウンロードして抽出しました。既存のインストールはにありますhtml/cms/。新しいファイルはにありますhtml/modx-2.1.1-pl/。 SSH接続を介してサーバーにアクセスします。

html/cms/既存のファイルを上書きし、インストールに含まれていないファイルを保持しながら新しいファイルを移動する方法は?私は試しましたmv- コマンドを発行し、それについて読んrsyncだり、cpそれが適切かもしれません。

試したときにmv -ivt cms/ modx-2.1.1-pl/*成功しませんでした。のサブディレクトリはmodx-2.1.1-pl/移動されませんでした。

正しいことは何ですか?

答え1

場合に備えて、まず既存のファイルをバックアップしてください。

tar czf modx-old.tar.gz html/cms

次に、cp新しいファイルを所定の場所にコピーするために使用します。mvここでは、既存のディレクトリを繰り返す代わりに既存のディレクトリをスキップするため、使用できません。ただし、cpコピー全体が作成され、ターゲット上の既存のファイルが上書きされます。

cd html/modx-2.1.1-pl/ && cp -Rpf . ../html/cms/

GNUを使用すると、コピーする代わりにハードリンクを作成してcp追加できます。-l

最後に、ディレクトリを削除できますmodx-2.1.1-pl

答え2

パラメータの順序が正しくありません。このコマンドの使用法mvはですmv source dest。 modx-2.1.1-plの下のすべてのエントリをcmsに移動するには、次の手順を実行する必要がありますmv modx-2.1.1-pl/* cms/。実際にcp代わりに使用する方が良いかもしれませんmv。この場合の構文は次のとおりですcp -r modx-2.1.10pl/* cms/

関連情報