変更されたファイルを繰り返し検索し、ディレクトリ構造を保持するディレクトリを使用してコピーします。

変更されたファイルを繰り返し検索し、ディレクトリ構造を保持するディレクトリを使用してコピーします。

過去1年間に追加されたイメージをディレクトリから見つけ、元のフォルダ構造を保持する新しいディレクトリにコピーしたいと思います。

findを使用していますが、何もコピーしません。 1行のコマンドを使用して実行する方法はありますか?

find image/* -mtime +356 -exec cp {} modified-last-year/ \;

このコマンドを実行すると、イメージディレクトリにありますが、イメージフォルダを再帰的に検索したいと思います。

[編集]
これら2つの質問に答えた後、次のことを行いました。 1.ブロックが0個あります
find image/* -mtime +356 | cpio -pd /target_dir

  1. find /full/path/to/image -mtime 365 -type f ( "-name *.jpg -o -name *.gif ) -execdir cp {} /full/path/to/image_target_dir/modified-last-year \;
    そして
  2. find /full/path/to/image -mtime 365 -type f -execdir cp {} /full/path/to/image_target_dir/modified-last-year \;
    何もコピーされません。

    そして、-type fを使用するか、使用せずにファイル数を照会するだけです。

  3. find /full/path/to/image -mtime 365 -type f | wc -l
    私はゼロを取得します。

    イメージディレクトリとサブディレクトリに過去1年間に追加されたファイルが存在することを確認できます。実際には200以上の画像が必要です。

    [編集 2]
    また、次のコードが正常に動作するには、クエリからディレクトリを除外する必要がありました。

    最初の答えのおかげでこれを作ることができました。
    find /full/path/to/image/* -path /full/path/to/image/ignored_dir -prune -o -print -mtime -365 | cpio -pd /full/path/to/target_dir/modified-last-year

ベストアンサー1

cpio以下を使用してパススルーモードで検索を使用できます。

 find  image/ -mtime -365 | cpio -pd /target_dir

編集:検索パスから不要な*を削除しました。

おすすめ記事