zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【Linux】find | xargs cpでヒットするファイルを階層・タイムスタンプを保ったままコピー

■コマンド
ここ3日分のファイルを対象に、階層を保ったままコピー

find . -mtime -3 -type f -print0 | xargs -0 cp --parents -p -t 宛先ディレクトリ


■オプションメモ

find -print0:-print0オプションを有効にすると区切り文字がスペースから \0 に変更されます
xargs -0:-0オプションを指定されると \0 を区切り文字として扱います

cp --parents  use full source file name under DIRECTORY
cp -p = --preserve=mode,ownership,timestamps
cp -t --target-directory=DIRECTORY