私は通常rsync -n
実際に行いますrsync
。問題は、を使用して生成されたリストを正確に再利用するために2番目の実行をどのように自動化するのですか--dry-run
?
つまり、実行するとrsync -n
シミュレーションが得られ、rsync
そのアイデアはその出力を取得して処理し、何らかの方法でその出力をrsync
生成して--include-from
リスト全体を一度だけ計算することです。
わからない場合は教えてください。
しかし、rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"
どのオプションを使用するかに関する追加の提案がある場合は、お知らせください。画像、ビデオ、文書のみを含む外付けハードドライブのコンテンツを別の外付けハードドライブにコピーしようとしています。
答え1
もちろん、テスト実行中に生成されたファイルのリストをインクルードファイルとして利用することも可能です。ただし、理想的にはドライラン出力の上部と下部にある追加のラインを削除する必要があります。
出力例:
sending incremental file list
[LIST OF FILES]
sent 226 bytes received 34 bytes 520.00 bytes/sec
total size is 648,373,274 speedup is 2,493,743.36 (DRY RUN)
これらの行を削除するには、rsync
出力をhead
とにパイプしますtail
。次に、処理された出力をインクルードファイルに保存します。
rsync --dry-run -avz source/ destination/ | head --lines=-3 | tail --lines=+3 > include.txt
最後にrsync
生成されたインクルードファイルを使用するように指示します(必要に応じて他のオプションを追加)。
rsync --include-from=include.txt --exclude=* source/ dest/