データ転送を実行していますが、以前のファイルシステムは現在別のパスにあるディレクトリに大きく依存しています。これはコードがオンラインで保存されるgitディレクトリです。移動または名前を変更する権限がありません。

だから私ができることは、このディレクトリを同じ古いパスに再同期することです。しかし、ディレクトリ名も変更されました。

ディレクトリを別の名前のターゲットディレクトリに同期する簡単な方法はありますか?

答え1

rsync再帰を使用してdestディレクトリをそのディレクトリの正確なコピーにするには、次の手順を実行しますsrc

rsync -a src/ dest

マニュアルrsyncページでは、動作方法について説明します。

ソースの末尾のスラッシュは、ターゲットに追加のディレクトリレベルが生成されるのを防ぎます。/ソースのテーリングを「名前でディレクトリをコピーする」ではなく、「このディレクトリの内容をコピーする」と考えることができます。 [...]

答え2

答え3

コンピュータが既存のファイルシステムと新しいファイルシステムにアクセスできる場合は、rsyncの代わりにシンボリックリンクを使用することをお勧めします。ホストを指定せずにrsyncコマンドを使用する場合(または同じホストの場合)に該当します。同じホスト上の名前の異なる2つのディレクトリをミラー化しようとしています。データをコピーして同期を維持するには、rsyncを頻繁に実行する必要があるため、rsyncを使用しないでください。

シンボリックリンクを使用すると、2つのディレクトリ(他の名前を含む)をミラーリングし、スペースがほとんど必要ない1回限りの変更が可能です。これは、別のディレクトリを指すエイリアスディレクトリを作成するのと同じです。

以前のgitが/old/path/old_gitというディレクトリにあり、コードリポジトリが/new/path/new_gitに移動されたとしましょう。

あなたはできます:

cd /old/path
rm -rf old_git     (if you still have it there, get rid of it, or move it out of the way)  
ln -s /new/path/new_git old_git

これにより、以下のようにリンクが作成されます。

/old/path/old_git -> /new/path/new_git

したがって、 new_git に置かれたすべてのエントリは、データを複製したり、継続的に同期しなくても、以前の方法ですぐに使用できます。

答え4

これで代替ソリューションが見つかりました。

rysnc -r /origin/* /target/ソースディレクトリのすべてのコンテンツをターゲットディレクトリと同期させるために使用します。

関連情報