- ベストアンサー
過去1週間のログだけをコピー その2
お世話になっています。 先日こちらで、「過去1週間のログだけをコピー」をするには、という質問をしまして、 > find logdir -type f -mtime -7 -exec cp -p {} otherdir/ \; でできると教えていただきました。 ところが、logが格納されているディレクトリ構成が logDir +- aDir +- logfile.log +- bDir +- logfile.log +- cDir +- logfile.log となっていまして、上記の方法を使うと、logfile.logという複数のログファイルがすべて同じディレクトリにコピーされてしまいます。よって、logfile.logという3つのファイルはその都度上書きされて、最終的に1つしか残りません。 Windowsのxcopyコマンドのように、ディレクトリ階層を保ったまま、過去1週間に更新されたログだけをコピーする方法はないでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
事前に、old/aDir、old/bDir、old/Cdirを作っておいて、 cd path/logdir find . -type f -mtime -7 -exec cp -p {} Path-to/old/{} \; がわかりやすいですかね。 あるいは、 cd path/logdir find . -type f -mtime -7 -print | cpio -pd Path-to/old/ だと、事前にサブディレクトリを作る必要がないですが、cpioは機能の多いコマンドなので初心者は避けた方が良いかも。
その他の回答 (1)
- wolf03
- ベストアンサー率22% (241/1086)
・findとコピーを各ログのディレクトリに個別に行う ・シェルにして、find結果を一個ずつパスチェックしてコピー
お礼
ありがとうございました。 結局cpではなく、cpioを使うことで解決することにしました。
お礼
あ、そうですそうです。cpioを使うことにしました。 ありがとうございました。