過去1年間に追加されたイメージをディレクトリから見つけ、元のフォルダ構造を保持する新しいディレクトリにコピーしたいと思います。
findを使用していますが、何もコピーしません。 1行のコマンドを使用して実行する方法はありますか?
find image/* -mtime +356 -exec cp {} modified-last-year/ \;
このコマンドを実行すると、イメージディレクトリにありますが、イメージフォルダを再帰的に検索したいと思います。
[編集]
これら2つの質問に答えた後、次のことを行いました。 1.ブロックが0個あります
。find image/* -mtime +356 | cpio -pd /target_dir
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 \;
そしてfind /full/path/to/image -mtime 365 -type f -execdir cp {} /full/path/to/image_target_dir/modified-last-year \;
何もコピーされません。そして、-type fを使用するか、使用せずにファイル数を照会するだけです。
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
編集:検索パスから不要な*を削除しました。