名前

syncdir.perl - 2つのディレクトリ間の同期をとる

形式
syncdir.perl [options] [SrcHost:]SrcDir [DistHost:]DistDir
  or syncdir.perl [options] -v Volume
  or syncdir.perl [options] -a
機能説明

syncdir.perl は、ホスト SrcHost 上のディレクトリ SrcDir と、ホスト DistHost 上のディレクトリ DistDir の内容の同期を取ります。すなわち、SrcDir 上の ファイルが DistDir 上のファイルよりも新しい場合、または DistDir に同じ名前のファイルが存在していない場合にファイルは 更新されます。(ただし、-i,-x,-u オプションが指定されて いる場合、複製されないファイルが生じることもあります。)

SrcHost,DistHostが省略されている場合はローカルなディ レクトリとして解釈されますが、SrcHost,DistHostを同時 に指定して、リモートホストからリモートホストへと転送させることはで きません。

SrcDir,DistDirが相対パスで指定されている場合は、ホー ムディレクトリからの相対パスとして解釈されます。

-i,-x オプションによって指定された正規表現は、 SrcDir,DistDir からの相対パス名と照合されます。 また、-i オプションより、-x オプションが優先して扱われます。 すなわち、-i オプションに指定されたファイルのうち、-x オプションでも指定されているファイルの同期は行ないません。

オプション

-a
設定ファイルに指定されている作業の全てを行う
-d
SrcDir に対応するファイルが見つからないファイルを消去する
オプションの組合わせによっては、意図しないファ イルを消去してしまう可能性があります。必ず、-n オプションで実 際に消去されるファイルを確認してから使ってください。
-f file
設定ファイルとして file を使う
-h
ヘルプを表示する
-i regex
正規表現 regex にマッチしたファイルのみを複製する (正規表現の書式は Perl と同じである)
-k file
複製元にfileがあるか確認し、なければ複製を行わない
-n
複製を行わず、実行されるコマンドのみを表示する
-r
複製後、SrcDir と DistDir を交換して再実行する
-u
複製先に既に存在しているファイルの更新のみを行う
-v volume
識別子 volume で定義されている作業を行う
-x regex
正規表現 regex にマッチしたファイルは複製しない (正規表現の書式は Perl と同じである)
-?
ヘルプを表示する
--all
-a と同じ動作をする
--config
-f と同じ動作をする
--debug
-n と同じ動作をする
--delete
-d と同じ動作をする
--exclude
-x と同じ動作をする
--include
-i と同じ動作をする
--key
-k と同じ動作をする
--reverse
-r と同じ動作をする
--update
-u と同じ動作をする
--version
バージョン番号を表示する
--volume
-v と同じ動作をする
--help
ヘルプを表示する

設定ファイルの書式

1行に識別子とオプションをコロンで区切って記述してください。例えば、

src: remote:src src
という内容の ~/.syncdir を用意して、
syncdir.perl -v src
と実行することは、
syncdir.perl remote:src src
を実行したことと等価になります。

オプションには、コマンドラインオプションで指定できるオプションなら、 どれでも指定してかまいません。従って、

all: -v src -v mail
src: remote:src src
mail: remote:Mail Mail
などのように入れ子構造にすることもできます。

行頭が # の行と空行は無視されますので、コメントを書くことができます。 行末に \ を置くと改行コードを無視します。

ファイル
~/.syncdir  設定ファイル (コマンドラインオプションで設定ファイルが変更
        されてもこのファイルは最初に読み込まれます)
環境変数
HOME     ホームディレクトリ
インストール

バグ

普通のファイルのみを複製します。すなわち、シンボリックリンクや名前 つきパイプ、ソケット、ブロック・デバイス、キャラクタ・デバイスは複 製されません。

SrcDir に存在する空のディレクトリは複製されません。

オプションは指定された順に読み込まれます。従って、syncdir.perl -v foo -f bar のように、設定ファイルの指定よりも先に -v オプションを与えると、期 待通りに動作しないでしょう。また、設定ファイル中で -f オプションを使って、更に別の設定ファイルを読み込もうとしても、これ も期待通りには動作しないでしょう。

注意

以下のコマンドを呼び出しています。パスが通っているか確認してくださ い。

fj.sources に流れていたsyncdir とは、全く別物です。