ディレクトリをマージする dirmerge コマンド
作成 小金丸信幸
E-Mail: kogane@koganemaru.co.jp
作成日 平成15年(2003年)07月13日 (日)
1. はじめに
2つのディレクトリをマージするコマンドはいろいろ存在します。例えば、
fj.sources に投稿された、"syncdir 1.8 - Synchronize two directorys'
hierarchies"、
syncdir.perl(参照 http://namazu.org/~tsuchiya/perl/syncdir.perl)、
syncdir(参照 http://oikaze.com/~tamada/Products/syncdir/) などです。し
かし、時間の新しいものだけを残したり、存在しないファイルのみマージする
などです。
時間の新しいもののみ残してマージすると、いずれか一方でのみ存在していた、
時間は古いが重要な変更が失われる可能性があります。
新しいく作成した、ここで説明する dirmerge コマンドは途中の版のファイル
も残してディレクトリをマージします。時間順にマージされたファイルは
.01, .02 または .v01, .v02 というサフィックスを付けてマージされます。
従って、時間順で途中のファイルなどが失われることがありません。
2. 説明
2つのディレクトリをマージします。ファイル名の版数は .01, .02, .03 や
V01, V02, V03 や v01, v02, v03 等のサフィックスが付いているものとしま
す。-o オプションを指定すれば .Orig, .orig, .org, .old というサフック
スのあるファイルもマージ対象となります。
マージ後のファイルはオプションに従って .01, .02 または .V01, .V02 また
は .v01, .v02 というサフィックスを付けられます。
2つのディレクトリ下にサブディレクトリがあれば、それらもマージの対象と
なります。
内容が同じファイルで、ファイル作成時間が異なる場合は古い時間に合わせま
す。
3. 使用法
使用法: dirmerge [-abcv] [-o] dir1 dir2 [dir3]
-a .01, .02, .03 形式のサフィックスに振り直します。
-b .V01, .V02, .V03 形式のサフィックスに振り直します。
-c .v01, .v02, .v03 形式のサフィックスに振り直します。
-v 処理しているファイル名を表示します。
-o .Orig, .orig, .org, .old もマージの対象にします。
dir3 の指定があれば、dir1 と dir2 をマージして dir3 に出力します。
dir1、dir2 のみなら、dir1 と dir2 をそれぞれ同じになるようにマージ
します。
3. 制限事項
シンボリックリンクファイルやデバイスファイルなどレギュラーファイル以外
はマージの対象になりません。
シンボリックリンクファイルやデバイスファイルなど、マージ対象となる名前
に含まれるファイルが存在する場合はマージが誤動作する可能性があります。
本コマンドを使って重要なファイルが失われるなど、障害が生じても作者は責
任を負いません。心配な場合は必ずバックアップを取ってから実行してくださ
い。
4. その他
本コマンドは最初 C 言語で作成し始めましたが、途中で挫折しました。その
後 perl を学習し、perl で作成しました。perl は学習したばかりなので、も
っとこうしたほうがよいなどありましたら、作者まで御連絡ください。
5. 改版履歴
01 版 作成日 平成15年(2003年)07月13日 (日)
以上.
--
Copyright (C) 2003 (有)小金丸コンピュータエンジニアリングサービス
Copyright (C) 2003, N. Koganemaru