1

もともと、bashスクリプトのパラメーターで指定されたディレクトリ(すべてのファイルとサブディレクトリを含む)を同期したいと考えています。

この投稿を見つけました:ディレクトリを別のディレクトリに再帰的にコピーして、変更されていないファイルのみを置き換えるにはどうすればよいですか? 同様のケースでrsyncを使用する方法を説明しています。

私の bash スクリプトは非常に単純で、以下にリストされています。

#!/bin/bash
echo -e "Type the project to be deployed: \c "
read project
echo -e "* Deploying: $project *"    
echo -e "Sync: /var/repo/released/$project"
echo -e "      /var/www/released/$project"

rsync -pr /var/repo/released/$project /var/www/released/$project

その結果、/released 内のすべてがコピーされます (そこには多くのディレクトリがあり、たとえば -projects- としましょう)。

パラメータで指定されたプロジェクトのみをコピー (同期) したいと考えています。

これを行う方法についてアドバイスをいただけますか?

4

1 に答える 1

1

引数なしでスクリプトを呼び出すと (プロジェクト名を対話的に変数に読み込むので、これはおそらくあなたが行っていることです$project)、位置パラメータ$1は空のままです。したがって、スクリプトrsync/var/repo/released/.

$1スクリプトでに置き換える必要があり$projectます。また、ディレクトリ名のスペースによる問題を回避するために、パスを二重引用符で囲むことをお勧めします。

rsync -pr "/var/repo/released/$project" "/var/www/released/$project"
于 2013-05-24T20:38:13.483 に答える