- 締切済み
bash scriptで1日以内更新フォルダコピー
bash script で1日以内に更新されたフォルダとその中に含まれているファイルやディレクトリのすべてをコピーしたいのですが、そのフォルダの1階層上の親ディレクトリを保ったままコピーする方法を教えてください。 具体的に説明すると ・aというディレクトリに、bとcというディレクトリがある。 ・bには1、2、3 という3つのディレクトリがあり、2と3が1日以内に更新されたディレクトリである。 ・cには4、5 という2つのディレクトリがあり、4が1日以内に更新されたディレクトリである。 ・1,2,3,4,5の中にはたくさんのファイルとディレクトリが含まれている。 という構成のディレクトリaがあるとして、 aのパスとコピー先のディレクトリのパスを引数や、スクリプトの中で指定し、実行すると、 ・コピー先のディレクトリに、bとcがある。 ・bには2と3があり、2にはファイル、ディレクトリがそのままコピーされている。 ・cには4があり、同じく中身はそのままコピーされている。 という結果が得られるものです。 このようなスクリプトの書き方を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
tarコマンドを使えばできるかと思います。 src, dstは、それぞれ、コピー元のベースディレクトリ、コピー先のベースディレクトリです。 ( cd src && find . -mtime -1 -type f | tar -cf - -T - ) | ( cd dst && tar -xf - ) tarの -T はアーカイブするファイルを標準入力から読み取るオプションです。
- MillenniuM
- ベストアンサー率58% (42/72)
rsync を使ってみた例です。FullPathToYourStorage にバックアップに使う 絶対パスを設定してから、使ってみると良いと思います。 http://pastebin.com/FGWsZ694
- Tacosan
- ベストアンサー率23% (3656/15482)
いろいろやりかたはあると思う. find から cpio ってできるか?