これに基づいて包括的なバックアップスクリプトを実装したいrsync
ので、要件に応じて正しいパラメータを決定したいと思います。デフォルトでは、変更されたファイルが変更時刻に関係なくソースからターゲットにコピーされることを望みます(つまり、ソースファイルがターゲットファイルより古いか最新であるかにかかわらず、内容が異なる場合はコピーする必要があります)。しかし、動作しません。
../src/test.txt
../dst/test.txt
上記のフォルダ構造です。次のコマンドを初めて実行すると、test.txt
srcからdstフォルダにコピーされます。
rsync -avh --ignore-times src/ dst/
その後、src / test.txtの内容を修正して上記のコマンドを再実行しましたが、今回も更新されたファイルをdstフォルダにコピーしました。
ところで、次のdstフォルダにあるtest.txtを修正して上記のコマンドを実行してみましたが、今回は動作せず、src/からdst/フォルダにファイルがコピーされませんでした。しかし、考えてみるとこの回答、パラメータを追加してから正しく機能します--ignore-times
。
これはUbuntuのバグですか、それとも私が何か間違っていますか?コンテンツが異なる場合(ターゲットファイルがより最新の場合でも)、ファイルが常にソースからターゲットにコピーされるようにするには、どのパラメータを追加する必要がありますか?
編集する
私は--checksum
チェックサムに基づいてコピーし、タイムスタンプを完全に無視するパラメータを追加してみました(マンページに記載されています)。しかし、それでも動作しません。
ベストアンサー1
何らかの理由で--archive
orパターンがorパラメータa
で機能しないようです。ただし、単純な再帰コピーパターン(または)です。だから私の場合、私は次のように完璧に仕事をしました。--ignore-times
--checksum
--recursive
r
rsync -vcr src/ dst/