過去 1 時間に対象ファイルが変更したファイルを無視し、あるディレクトリから別のディレクトリにファイルをコピーしますか?

過去 1 時間に対象ファイルが変更したファイルを無視し、あるディレクトリから別のディレクトリにファイルをコピーしますか?

過去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\0find\n

おすすめ記事