私は愚かなことに多くのデータをコピーして使用しましたcp -r
。
今見たらファイル修正時間を逃したという意味だと気づきました。私しなければならない使用されるcp -rp
。
私のディレクトリ構造とファイルは変更されていません。今すぐプロパティ/タイムスタンプをコピーする方法はありますか?私の考えにはrsync
効果があると思います。
答え1
これは私にとってうまくいきます。
rsync -vrt --size-only /src /dest
/src
正しいタイムスタンプがあるフォルダーです。/dest
フォルダファイルは、/ srcフォルダファイルの変更時間を取得します。生成時間は同じままです。
この--size-only
コマンドはサイズによってファイルのみを比較するため、デフォルトでは違いはありません。-t
タイムスタンプにコピーします。
答え2
find
を使用してこれを行うことができますtouch
。
cd destination
find -depth -exec touch -r /path/to/source/{} {} \;
この-depth
オプションは、ディレクトリの内容が設定された後にディレクトリが設定されるタイミングをスケジュールします。これは、引数の部分文字列の場合に補間find
すると仮定します。{}
そうでない場合は、シェルを呼び出します。
find -depth -exec sh -c 'for x; do touch -r "$0/$x" "$x"' /path/to/source {} +
アクセス時間をコピーするには、touch -a …
以下も実行してください。
find -depth -exec touch -a -r /path/to/source/{} {} \; -exec touch -r /path/to/source/{} {} \;