過去1時間でターゲット(ソースを除く)ファイルが変更されていない場合は、ファイルをコピーするコマンドの検索を試みます。
ベストアンサー1
私が知っている限り、あなたが望むものを正確に実行するコマンドはありません。次のことがうまくいきます(--dry-run
結果に満足すると確信している場合は削除し、--verbose
より静かに実行するには次のように置き換えてください)。--quiet
src=/path/to/source
dst=/path/to/target
comm -z -23 \
<(find "$src" -type f -printf '%P\0' | sort -z) \
<(find "$dst" -type f -mmin -60 -printf '%P\0' | sort -z) |
rsync --dry-run --verbose --archive --from0 --files-from - "$src" "$dst"
これは、比較的新しいユーティリティがNUL終了回線をどのように処理するかを理解していると仮定します。必要に応じて、ファイル名に改行文字が含まれていないことを保証できる限り、コマンドから3つの-z
フラグを削除して置き換えることができます。rsync
--from0
\0
find
\n