2007-05-31 [長年日記]
_ 何回でも言おう。僕は rsync が苦手だ。
いやぁ。
またハマった。
どうしても rsync で狙った特定のファイルだけをコピーすることができない。最終的に
- 丸ごと別な場所にコピー
- 不必要なファイルを find + rm で削除
- 残ったファイル群を丸ごと rsync でコピー
という段取りに至るのだが、困ったことにどうしてもこの手順を忘れてしまう。だいたいこういう作業が普段から必要なわけではないというところがまたやっかいだ。
どうしてマニュアルをよく読んでいろんなパターンで include, exclude を書いてみてもダメなのだろう。rsync でこの作業をやるたびにものすごくイライラしてしまう。
あと cp で階層ごとコピーする方法ってなかったっけなぁ。
cp hoge/fuga/bar ./foo
ってやったら
./foo/hoge/fuga/bar
ができるもの。これはもしかすると単体ではなく tar を組み合わせれば可能かな?
階層 cp は cp -r でできます。<br>tar で行なおうとしているということから、アトリビュートの保持が必要であれば、cp -ar でできます。<br>保存目的であれば、tar の方が便利ですが・・・。
cp -r だと「指定したいちばん下の階層から下をまとめて」ですよね。そうではなくて「上の階層から狙ったものだけ個別に」階層を保持したままコピーしたいんです。まぁ例に挙げた通りなんですけど。逆に permission などの情報は別に要らないんですけど、とりあえず tar に放り込んでしまえば階層の保持はできるだろうな、ということです。6月1日のエントリでとりあえず解決はしました。