あるディレクトリを別のディレクトリに再帰的にコピーしたいのですが、違いだけをコピーしたいと思います。これは、Solarisのスナップショットボリュームでこれを実行しているためです。つまり、すでに100gigを含むディレクトリに100gigをコピーしても5gigだけが異なる場合は、100gig全体をそのディレクトリにコピーしたくありません。ディスクを200gのデータで埋めます(スナップショットは100gの新しいデータと100gの古いデータを保存します)。
私は最終結果が105Gのスペース(つまり5Gの新しいデータと100Gの古いデータ)だけを占めたいと思います。
高速ロールバックオプションが必要なため、スナップショットの削除はオプションではありません。
ブロック単位でのみ違いをコピーしても大丈夫ですが、異なる場合はファイル全体をコピーしてもかまいません。
ターゲットのファイルに最新のタイムスタンプがある可能性があるため、-u
機能しません。cp
また、ソースディレクトリとターゲットディレクトリが異なるボリュームにあることに注意してください。
どうすればいいですか?
ベストアンサー1
Rsyncはあなたのツールです:
rsync --archive source/ dest/
アーカイブは、以下を含む複合オプションです。
--recursive # recurse into directories
--links # copy symlinks as symlinks
--perms # preserve permissions
--times # preserve times
--group # preserve group
--owner # preserve owner
--devices # preserve device files
--specials # preserve special files
システムでrsyncが利用できない場合は、rsyncをインストールする必要があります。他のツールを使用して別のソリューションを作成することもできますが、これをうまく実行するプログラムを探している場合(質問が間違っていない限り)、探しているのはrsyncです。