こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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があり、同じく中身はそのままコピーされている。
という結果が得られるものです。

このようなスクリプトの書き方を教えてください。

投稿日時 - 2013-11-20 00:53:55

QNo.8354388

暇なときに回答ください

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

tarコマンドを使えばできるかと思います。
src, dstは、それぞれ、コピー元のベースディレクトリ、コピー先のベースディレクトリです。

( cd src && find . -mtime -1 -type f | tar -cf - -T - ) | ( cd dst && tar -xf - )

tarの -T はアーカイブするファイルを標準入力から読み取るオプションです。

投稿日時 - 2013-11-21 19:53:58

ANo.2

rsync を使ってみた例です。FullPathToYourStorage にバックアップに使う
絶対パスを設定してから、使ってみると良いと思います。
http://pastebin.com/FGWsZ694

投稿日時 - 2013-11-20 07:57:00

ANo.1

いろいろやりかたはあると思う.

find から cpio ってできるか?

投稿日時 - 2013-11-20 01:33:08

あなたにオススメの質問